htaccess重写规则适用于www版本,但不适用于非www版本

时间:2016-07-14 04:52:00

标签: .htaccess

RewriteEngine on  
RewriteBase / 

# This will redirect all versions to http://www.sitename.com version
RewriteCond %{HTTP_HOST} ^sitename.com
RewriteRule (.*) http://www.sitename.com/$1 [R=301,L]

当我打开页面www.sitename.com/rrule时,它正常工作但如果我访问的网页没有像sitename.com/rrule那样的www,则只会重定向到我设置为不同规则的index.php页面。

RewriteRule ^rrule$ ./user/rrule.php [L,NC]

相同的问题是带有查询字符串的页面。

RewriteRule ^([a-zA-Z0-9_-]+)/?$ ./user/rrule_one_var.php?oneid=$1 [L,NC]

我想让规则适用于两个版本的网站(www和没有www)。

1 个答案:

答案 0 :(得分:0)

访问非www案例时强制URL为www。因此,请将您的网址设置为与www版本唯一。

案例1:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.yoursite\.com
RewriteRule (.*) http://www.yoursite.com/$1 [R=301,L]

替代案例:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

并在下面添加重写条件。现在你的问题将得到解决。

相关问题