我正在尝试将我的网站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]
答案 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]