我有一个文档结构,其中我在父目录中有一个名为.htaccess
的{{1}}文件。在同一目录中,我有一个名为Fort
的文件夹。我在public
目录中有一个public
脚本。
这是我的bootstrap.php
代码:
.htaccess
我正在使用mamp,默认网址设置为RewriteEngine On
RewriteBase /Fort
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ bootstrap.php?url=$1 [QSA,L]
。
我的localhost:8888/Fort/
脚本包含以下代码:
bootstrap.php
出于某种原因,当我通过网址<?php
echo $_GET['url'];
时,我的localhost:8888/Fort/foo/bar
脚本会将网址返回为bootstrap.php
。但是,如果我传递了网址foo/bar
,则会收到localhost:8888/Fort/
错误,并且未加载403 Forbidden
脚本。
答案 0 :(得分:3)
好问题!感谢所有信息。
将最后一行更改为:
RewriteRule ^(.*)$ bootstrap.php?url=$1 [QSA,L]
当您访问/Fort/
时,有一个空字符串供重写匹配,并且您匹配+
这意味着一个或多个字符,当实际上没有字符时,所以它不是'被触发。更改为*
表示修复问题的零个或多个字符,现在将按预期匹配/Fort/
。