由于可能的配置错误,请求超出了10个内部重定向的限制。

时间:2009-10-23 05:20:14

标签: mod-rewrite

我有一个简单的重写

RewriteRule ^.*$ addnew/$0

然而我得到了

Request exceeded the limit of 10 internal redirects due to probable configuration error.

我正在尝试重写

www.mysite.com/的 anycharacter

进入

www.mysite.com/addnew/的 anycharacter

3 个答案:

答案 0 :(得分:23)

尝试以下解决方案,它对我有用。我希望这也适合你。

  1. 在做任何事之前 - 备份你的数据库!

  2. 现在,进入wordpress>设置>固定链接

  3. 将其设置为其中一个非常永久链接的设置,例如//年/月/'

  4. 在PC / Mac上打开文本编辑器,然后打开从您下载的.htaccess文件 网络服务器

  5. 找到这段代码

    # BEGIN Wordpress
    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    
  6. 用这段代码替换它,由Scott Yang提供:

    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteBase /
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.+)$ /index.php/$1 [L,QSA]
    </IfModule>
    
  7. 将此代码上传到服务器上的主域根目录,然后就完成了。

  8. 一切都应该有用

答案 1 :(得分:13)

正如RC已经说过,.*也会匹配addnew/。由于 L 标志会导致重写规则的重新注入,因此您将获得无限递归。

因此请调整规则,使其与addnew/

不符
RewriteRule !^addnew/ addnew%{REQUEST_URI}

答案 2 :(得分:3)

.*匹配addnew/。试试:

RewriteRule ^[^/]*$ addnew/$0