【问题标题】:Configure mod_rewrite to add "www" and to support MVC配置 mod_rewrite 以添加“www”并支持 MVC
【发布时间】:2015-12-28 10:35:09
【问题描述】:

如果用户忘记输入并通过[QSA] 重定向到index.php 仍然支持MVC,我想在URL 中添加www

这是我目前的工作.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]

它们都不起作用,请指导怎么做

谢谢。

【问题讨论】:

    标签: php apache .htaccess mod-rewrite redirect


    【解决方案1】:

    .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]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-30
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多