.htaccess将非WWW重定向到WWW

时间:2014-12-30 10:35:03

标签: .htaccess mod-rewrite redirect

我正在尝试创建.htaccess:

  1. 将所有非WWW网址重定向到WWW

  2. 将一些特定的slug重定向到特定页面

  3. 重定向所有其他slug(在“spicel”中没有到page.php?id =)

  4. 我用的是什么:

    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{HTTP_HOST} !^www\.example\.co\.il
    RewriteRule (.*) http://www.example.co.il/$1 [R=301,L]
    ErrorDocument 404 /404.php 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^צרו-קשר$ /contact.php [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^/?([^/]+)$ /page.php?id=$1 [L]
    

    url example.co.il not redirect wo www.example.co.il。我在做什么?

1 个答案:

答案 0 :(得分:1)

当代码不是现有的文件/文件夹时,您的代码才会将non-www重定向到www
只需删除这两个条件。

变成

ErrorDocument 404 /404.php 
RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteRule ^צרו-קשר$ /contact.php [L]
# here: other specific pages

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/?([^/]+)$ /page.php?id=$1 [L]