htaccess不适用于www和非www

时间:2013-11-18 08:05:12

标签: php regex apache .htaccess mod-rewrite

我正在尝试将 www.site.ru site.ru 重定向到 www.site.ru/ru_RU 。但我不能让它发挥作用。

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/ru_RU [L,R]
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/ru_RU [L,R]

RewriteCond %{REQUEST_URI} ^/news
RewriteRule (.*) /news [QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>

它没有重定向WWW版本。有人能告诉我如何提出这个要求。顺便说一句,有时我会遇到这样的情况,在Firefox中它正在工作,但在IE中却没有。

2 个答案:

答案 0 :(得分:0)

试试这段代码:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?site\.ru$ [NC]
RewriteRule ^$ http://www.site.ru/ru_RU [L,R]

## WHAT IS THIS RULE DOING??
# RewriteCond %{REQUEST_URI} ^/news
# RewriteRule ^ /news [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [L,QSA]

</IfModule>

btw我不得不为/news评论可疑的第二条规则。如果你能解释一下你正在尝试做什么,我可以建议你如何解决它。

答案 1 :(得分:0)

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/ru_RU [R=permanent,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/ru_RU [R=301,L]