我正在尝试运行一个站点,该站点通过 index.php 文件路由所有 URI 请求以进行处理,但我也在尝试在 webroot 上运行 Wordpress。一切正常,除了对https://mysite.com/wp-admin/的请求,这给了我一个“这个网页有一个重定向循环”错误。去https://mysite.com/wp-admin/edit.php工作正常。
我的 .htaccess 文件如下所示:
RewriteEngine On
# eliminate www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# force SSL
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}/%1 [R,L]
RewriteBase /
# rewrite directory patterns
RewriteRule ^([a-zA-Z0-9-\/]+)/([a-zA-Z0-9-%/\/]+)/([0-9]+)$ /index.php?page=$1&action=$2&id=$3 [NC,QSA,L]
RewriteRule ^([a-zA-Z0-9-\/]+)/([a-zA-Z0-9-%/\/]+)$ /index.php?page=$1&action=$2 [NC,QSA,L]
RewriteRule ^([a-zA-Z0-9-\/]+)$ /index.php?page=$1 [NC,QSA,L]
# Wordpress
<IfModule mod_rewrite.c>
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
任何想法是什么导致重定向循环?我试过把
RewriteCond %{REQUEST_URI} !wp-admin
在强制 SSL 和消除 www 规则的前面,但它似乎并没有什么不同