通过主页 ( example.com
) 进入我的网站时,一切正常。但进入时example.com/forums
出现 500 内部错误,并在 error_log 中看到以下内容:
由于可能的配置错误,请求超出了 10 次内部重定向的限制。
另外,我知道我可以发布输出httpd -S
,但它真的很长,并且没有剧透块和格式也消失了,抱歉。
这是我的.htaccess
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data|js|styles|install) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
RewriteBase /var/www/html
</IfModule>
编辑:您需要虚拟主机吗?
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>
答案1
这里的一个问题是,您的RewriteRule
匹配每个请求,并将其重写为index.php
。因此,对 的请求index.php
也会被重写为index.php
,如此反复。只是 Apache 在检测到十次连续重定向后会停止尝试。
您需要找出您到底想重写什么,然后为不循环回到自身的内容制定规则。