如果用户忘记键入并通过使用[QSA]
重定向到index.php
来支持MVC,我想将www
添加到URL中
这是我目前的工作.htaccess
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L,QSA]
使用这个.htaccess一切都很好,我可以键入
www.abc.com/xxx/yyy
访问任何特定的页面
无论如何,因为我使用的是Facebook身份验证,所以我必须防止我的用户在没有www
的情况下键入网站URL,所以我尝试编辑我的.htaccess
RewriteCond %{HTTP_HOST} ^abc'.com$
RewriteRule ^(.*)$ http://wwww.abc.com/$1 [R=301,QSA]
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L,QSA]
使用此配置,如果我键入
abc.com
,则会重定向到www.abc.com
,但如果我键入了abc.com/xxx/yyy
,则仅重定向为www.abc.com
,而不会重定向到特定页面。
我也试过
# 1
RewriteCond %{HTTP_HOST} ^abc'.com$
RewriteRule ^(.*)$ http://wwww.abc.com/$1 [QSA]
# 2
RewriteCond %{HTTP_HOST} ^abc'.com$
RewriteRule ^(.*)$ http://wwww.abc.com/index.php [QSA]
# 3
RewriteCond %{HTTP_HOST} ^abc'.com$
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://wwww.abc.com/$1 [L,QSA]
它们都不起作用,请指导该怎么做
谢谢。
在.htaccess
文件上方添加这两行
RewriteCond %{HTTP_HOST} !^www'.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
所以你最后的htaccess看起来像这个
RewriteCond %{HTTP_HOST} !^www'.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L,QSA]