Apache 重写返回“的规则”;“过度重定向”;错误
我在Apache 重写返回“的规则”;“过度重定向”;错误,apache,.htaccess,Apache,.htaccess,我在.htaccess中键入了以下代码: RewriteEngine on RewriteBase /amit/ RewriteCond ${REQUEST_FILENAME} !-f RewriteCond ${REQUEST_FILENAME} !-d RewriteRule (.+) public/$1.php [NC,L] 本质上,它应该做的是将任何请求从/amit/重定向到public/$request.php。它总是在我的apache日志文件中返回太多的重定向错误,而我似乎无法找
.htaccess
中键入了以下代码:
RewriteEngine on
RewriteBase /amit/
RewriteCond ${REQUEST_FILENAME} !-f
RewriteCond ${REQUEST_FILENAME} !-d
RewriteRule (.+) public/$1.php [NC,L]
本质上,它应该做的是将任何请求从/amit/
重定向到public/$request.php
。它总是在我的apache日志文件中返回太多的重定向错误,而我似乎无法找出问题所在
我是apache的新手,所以请礼貌一点。如果你能解释一下答案,我会很高兴的
编辑2:
更多信息:在localhost
根目录中,我有一个.htaccess
将所有请求重定向到/amit/
:
RewriteEngine on
RewriteBase /
RewriteRule (.*) amit/$1 [NC,L]
在目录/amit/
中,我有另一个.htaccess
将请求重定向到admin/public:
RewriteEngine on
RewriteBase /amit/
RewriteRule ^(admin/|admin)$ admin/index.php [NC,L]
RewriteRule ^(admin_login/|admin_login)$ public/admin_login/index.php [NC,L]
RewriteCond ${REQUEST_FILENAME} !-f
RewriteCond ${REQUEST_FILENAME} !-d
RewriteRule (.*) public/$1 [NC,L]
最后,在/amit/public/
目录中,我有另一个目录来处理目录中的请求:
RewriteEngine on
RewriteBase /amit/public/
RewriteCond ${REQUEST_FILENAME} !-f
RewriteCond ${REQUEST_FILENAME} !-d
RewriteRule (.*) $1.php [NC,L]
问题很简单,但一开始似乎并不那么明显 对于
RewriteCond
,我使用了$
,而我应该使用%
正是这些敏锐的细节有时会抓住最糟糕的程序员……你的规则看起来还不错。您的htaccess文件中是否有任何其他规则或指令?
public/
是否在/amit/
内的子目录?是的,public/
是否在amit/
内。并且amit
位于localhost
目录中。正在运行MAMP。。。如果有帮助的话。我也试着去掉所有的线条,只留下最后一条,同样的一条不起作用。但它不起作用。我尝试在父目录中执行相同的操作,即htdocs
将所有请求重定向到/amit/
,结果成功了。。。很奇怪,可能是复制品