【问题标题】:.htaccess RewriteRule error.htaccess 重写规则错误
【发布时间】:2012-12-18 00:49:46
【问题描述】:

我在 .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

但是,它并没有像我预期的那样工作。

请教我在这种情况下应该怎么写。

提前非常感谢!

【问题讨论】:

  • “但是,它不像我预期的那样工作。” --- 你有什么期望以及它是如何工作的?
  • 将访问 mydomain.com 的用户重定向到 http://www.mydomain.com 有效。
  • RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule 。 index.php 这些行不起作用。

标签: php .htaccess yii


【解决方案1】:

您应该首先重定向到 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>

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2012-03-30
    • 2016-09-14
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多