【问题标题】:Infinite amount of rediretcs with .htaccess in subdirectory子目录中带有 .htaccess 的无限量重定向
【发布时间】:2021-04-08 15:02:29
【问题描述】:

我正在尝试运行一个可能不再获得任何支持的网页,所以我必须自己解决这个问题。所以在根目录下,我有这个.htaccess 文件:

RewriteEngine on
RewriteBase /
RewriteRule ^(.*) resources/$1 [L]

所以所有内容都被重定向到resources/ 文件夹。现在这有点奏效,因为首页显示了所有静态内容(CSS、JS、图像)。但是当我尝试打开mydomain.com/admin 时,我会得到一个HTTP 500。日志文件说

AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

子目录下的.htaccess文件有这样的内容:

Options -MultiViews
RewriteEngine On
Options -Indexes

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?param=$1 [QSA,L]

就我的基本 Apache 知识而言,这似乎是正确的;但它是,还是我改变了 Apache 设置? (VPS 是一种 PaaS 的东西,所以我可以访问/更改一些东西)

谢谢。

【问题讨论】:

  • 我敢说有效的请求(CSS.JS、图像)实际上是在客户端缓存的。因为对此类 URL 的请求肯定也会遇到重写循环...
  • @arkascha 当我第一次尝试运行网页时,静态不起作用;然后我把 RewriteBase \ 线放进去,然后它就起作用了。在此之前我从未访问过该网页。

标签: .htaccess web mod-rewrite


【解决方案1】:

按照以下方式保存您的根 htaccess 规则文件(您需要在重写之前设置一个检查条件)。

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/resources [NC]
RewriteRule ^(.*)$ resources/$1 [L]

然后为您的子目录级别的 htaccess 文件尝试以下操作:

Options -MultiViews
RewriteEngine On
Options -Indexes

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?param=$1 [QSA,L]

如果您想将根目录中的相同规则应用于子目录,请在子目录级别的 htaccess 文件中的 RewriteEngine ON 之前添加 RewriteOptions InheritBefore

【讨论】:

  • @wernersbacher,哦,抱歉有一个错字,Amit 现已修正,请您尝试新规则一次,让我知道结果如何。感谢 Amit 修正错字。
  • 谢谢,我试过了,还是一样的错误。您是否打算更改子目录的 .htaccess 文件,因为该文件仍然相同?
  • @wernersbacher,不,我的意思是更改根 htaccess 文件,子目录 htaccess 中没有更改,请在根目录中进行更改,让我知道它是如何进行的。
  • 好吧,我只是想确定一下 :) 我不知道在根 .htaccess 中还有什么要更改的,但似乎子目录的 .htaccess 不是问题?
  • @wernersbacher,是的,子目录 htaccess 在我看来没问题。
猜你喜欢
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-19
  • 1970-01-01
相关资源
最近更新 更多