禁止 .htaccess 重写根目录



我有一个文档结构,其中我在父目录中有一个名为Fort.htaccess文件。在同一目录中,我有一个名为public的文件夹。我在那个public目录中有一个bootstrap.php脚本。

这是我的.htaccess代码:

RewriteEngine On
RewriteBase /Fort
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ bootstrap.php?url=$1 [QSA,L]

我正在使用 mamp,默认网址设置为localhost:8888/Fort/.

我的bootstrap.php脚本有以下代码:

<?php
echo $_GET['url'];

出于某种原因,当我传递一个网址说localhost:8888/Fort/foo/bar时,我的bootstrap.php脚本将网址返回为foo/bar。但是如果我传递 urllocalhost:8888/Fort/,我会收到一个403 Forbidden错误,并且没有加载bootstrap.php脚本。

好问题!感谢您提供所有信息。

将最后一行更改为:

RewriteRule ^(.*)$ bootstrap.php?url=$1 [QSA,L]

当您访问/Fort/时,有一个空字符串供重写匹配,并且您正在匹配+这意味着一个或多个字符,而实际上没有字符,因此它没有被触发。更改为*表示零个或多个字符,这可以解决问题,现在将按预期匹配/Fort/

最新更新