我很难构建非www到www永久重定向。以下是我需要满足的条件......
1。)多域支持(多个网站域指向服务器上的同一目录,带有自己的数据库专用副本)。这意味着使用%{HTTP_HOST}而不是静态域名。
2。)所有可能的路径(或至少符合标准的路径)需要重定向;这意味着目录,HTTP查询等。
3。)我正在使用共享主机,因此我只能访问.htaccess文件。
以下是我现在正在使用的内容:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^%{HTTP_HOST}
RewriteRule (.*) http://www\.%{HTTP_HOST}/$1 [R=301,L]
详细说明:
我正在测试禁用浏览器缓存以防万一。
我在测试期间删除了其他语法,以查看哪些回复本身就可以正常工作。
答案 0 :(得分:3)
你走了:
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
它还将保留URI方案。
答案 1 :(得分:0)
这适用于我(使用我的域名)
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^%{HTTP_HOST}
RewriteRule ^(.*)$ http://www\.%{HTTP_HOST}/$1 [R=301,L]
我看到的唯一区别是RewriteRule的匹配模式。