我已经阅读了大量的帖子和页面试图解决这个问题。我有它主要工作。我有一个.htaccess文件设置,我正在尝试将我网站中的任何页面从非www重定向到(www)。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
它似乎从基本网址开始工作。但是,它不会重定向子页面。
这有效:
example.com - > www.example.com
这不起作用:
example.com/foo.html - > www.example.com/foo.html
非常感谢任何帮助
答案 0 :(得分:2)
我认为你需要添加\
来逃避你域中的点(第2行)。
如:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(.*)\.yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]
答案 1 :(得分:0)
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
答案 2 :(得分:0)
这是我在我的生产环境中工作的规则:
# If domain name without "www", add them:
RewriteCond %{HTTP_HOST} ^mydomainname\.(fr|com|net|org|eu) [NC]
# without www => force redirection:
RewriteRule (.*) http://www.mydomainname.%1$1 [QSA,R=301,L]