.htaccess将Apache从非www重定向到www版本

时间:2014-07-13 23:15:39

标签: apache .htaccess redirect

我正在尝试将我的网站dentists in London从非www重定向到www版本,并且我在我的服务器的.htaccess上使用以下代码,但它没有&# 39;工作。我错过了什么?

谢谢

RewriteEngine On
### re-direct to www
RewriteCond %{http_host} !^www.topdentists.co.uk [nc]
RewriteRule ^(.*)$ http://www.topdentists.co.uk/$1 [r=301,nc] 

2 个答案:

答案 0 :(得分:0)

试试这个:

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

这是更通用的,适用于任何网站,而不仅仅是您当前正在处理的网站。取自:Dense13.com(代码的解释位于文章下方的第二条评论中)

我认为你的代码不起作用的原因是因为RewriteCond使用正则表达式,但你没有逃避点(这是一个正则表达式字符)。

答案 1 :(得分:0)

要正确处理任何潜在的https请求以及任何奇怪的字符,通常建议使用以下内容:

# From http://stackoverflow.com/a/4958847/1078583
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]