htaccess:React网站上的301重定向导致重复模式

时间:2019-01-17 13:00:10

标签: reactjs .htaccess mod-rewrite

真的很奇怪的行为。

在mysite https://staging.example.com的子域中,我具有以下htaccess。

<IfModule mod_rewrite.c>
RewriteEngine On 
Redirect 301 /support /support/subsection
</IfModule>

这在https://example.com上可以正常使用,但在staging.mysite.com上则无法使用

在这里发生这种情况:https://staging.example.com/support/subsection/subsection/subsection/subsection/subsection/subsection/subsection/subsection

我得到这种重复的模式,好像有一些循环或正在发生的事情

1 个答案:

答案 0 :(得分:0)

重定向指令要求使用完整的URI作为重定向目标。但是,您可以使用RedirectMatch,它允许您将相对URI指定为目标。

RedirectMatch 301 ^/support$ /support/subsection

我认为您得到所有​​这些小节的原因有两个。第一个原因是您没有使用完整的URI进行重定向。我认为文档声称您不必使用它,我猜是文档错字。

第二个原因是因为您没有明确告诉引擎您想要什么,因此它不会总是按预期运行。使用.htaccess时,每次调用.htaccess文件时都会处理规则。由于您不知道从何处开始和结束(^ $),因此(我认为)每个字符将被处理一次,并且这种情况似乎仍然成立。但是,如果您使用httpd.conf文件,则该文件只会被处理一次。

如果使用httpd.conf,另一个好处是可以启用日志记录功能来研究复杂的mod_rewrite指令。要启用日志记录,请在httpd.conf中添加以下内容:

RewriteLog /var/log/apache/rewrite.log
RewriteLogLevel 2