.htaccess RewriteRule错误

时间:2012-12-18 00:49:46

标签: php .htaccess yii

我在.htaccess中有这些行。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

现在,我想将以下内容添加到.htaccess中,以便将所有用户重定向到http://www.mydomain.com

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

所以,我刚刚在现有的.htaccess文件中添加了上面的代码。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^mydomain.com
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]
RewriteRule . index.php

但是,它没有像我期望的那样起作用。

请教我如何在这种情况下写作。

提前非常感谢!!

1 个答案:

答案 0 :(得分:2)

您应首先重定向到www子域,然后将请求转发到index.php文件。试试这个:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^(www\.).+$ [NC]
    RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>