我的.htaccess文件中有以下规则。问题是当我尝试导航到site.com/news/wp-admin/
时,它最终会进入重定向循环。从我已阅读的其他问题/答案中,您可以使用RewriteCond %{REQUEST_URI} !^/news/wp\-admin/
创建例外,但这不能解决问题。它仍然重定向。我不确定我做错了什么。
以下.htaccess
位于我的根目录中。
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteOptions inherit
RewriteCond %{REQUEST_URI} !^/news/wp\-admin/
RewriteRule ^([a-z0-9\-]+)/?$ index.php?p=$1 [L,NC,QSA,B]
RewriteRule ^([a-z0-9\-]+)/(option1|option2|option3)/?$ index.php?p=$1&type=$2 [L,NC,QSA,B]
RewriteRule ^([a-z0-9\-]+)/(option1|option2|option3)/(.+)$ index.php?p=$1&type=$2&q=$3 [L,NC,QSA,B]
如果我发表评论RewriteRule ^([a-z0-9\-]+)/?$ index.php?p=$1 [L,NC,QSA,B]
它有效,但会破坏我网站的其余部分。
这是我的WordPress所在的.htaccess
中的/news/
。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /news/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /news/index.php [L]
</IfModule>
# END WordPress
答案 0 :(得分:0)
我假设您拥有Apache 2,这意味着您必须这样做:
RewriteCond %{REQUEST_URI} !^/?news/wp-admin/
在Apache 2中没有前导/
因此我们将其设为/?
可选
并且没有必要逃避-
因为它没有特殊意义。
额外删除RewriteOptions inherit
会执行此操作,因为使用此选项可以将相同的规则应用于子目录,这将导致您的循环