我有一个简单的重写
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
答案 0 :(得分:23)
尝试以下解决方案,它对我有用。我希望这也适合你。
在做任何事之前 - 备份你的数据库!
现在,进入wordpress>设置>固定链接
将其设置为其中一个非常永久链接的设置,例如//年/月/'
在PC / Mac上打开文本编辑器,然后打开从您下载的.htaccess文件 网络服务器
找到这段代码
# BEGIN Wordpress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
用这段代码替换它,由Scott Yang提供:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php/$1 [L,QSA]
</IfModule>
将此代码上传到服务器上的主域根目录,然后就完成了。
一切都应该有用
答案 1 :(得分:13)
正如RC已经说过,.*
也会匹配addnew/
。由于 L 标志会导致重写规则的重新注入,因此您将获得无限递归。
因此请调整规则,使其与addnew/
:
RewriteRule !^addnew/ addnew%{REQUEST_URI}
答案 2 :(得分:3)
.*
匹配addnew/
。试试:
RewriteRule ^[^/]*$ addnew/$0