除了一页之外,没有www的Apache重定向域与www相同

时间:2017-08-10 12:17:25

标签: apache .htaccess redirect

我是apache重定向的新手。 我想将example.org(没有www)重定向到www.example.org,除了一页 所以我这样做了:

<VirtualHost *:8001>
    ServerName example.org
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www.example.org$
    RewriteCond %{REQUEST_URI} !^/robots.txt
    RewriteRule ^(.*)$ http://www.example.org/$1 [R=301,L]

</VirtualHost>

它不起作用

有什么想法吗? 谢谢

1 个答案:

答案 0 :(得分:1)

.htaccess中使用此代码:

RewriteEngine On

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

第一个条件检查www是否不存在。第二个条件确保它不是目录example。如果满足这两个条件,则会强制www

确保在测试之前清除缓存。

修改

RewriteEngine On

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