Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';Apache重写规则有什么问题?_Apache_Mod Rewrite - Fatal编程技术网

什么';Apache重写规则有什么问题?

什么';Apache重写规则有什么问题?,apache,mod-rewrite,Apache,Mod Rewrite,这是我的.htaccess: RewriteEngine On RewriteRule ^([^/]+)$ /index.php?id=$1 [L] 并且请求不断导致500。您正在进入重写循环。更改如下: RewriteEngine On RewriteCond %{REQUEST_URI} !^/index\.php [NC] RewriteRule ^([^/]+)$ /index.php?id=$1 [QSA,L] 或者像这样(后面应该有相同的效果): 您的错误日志说明了什么?错误日

这是我的
.htaccess

RewriteEngine On
RewriteRule ^([^/]+)$ /index.php?id=$1 [L]

并且请求不断导致500。您正在进入重写循环。更改如下:

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/index\.php [NC]
RewriteRule ^([^/]+)$ /index.php?id=$1 [QSA,L]
或者像这样(后面应该有相同的效果):


您的
错误日志
说明了什么?错误日志中说明了什么?
由于可能的配置错误,请求超出了10个内部重定向的限制。
如果直接转到/index.php?id=,它工作正常吗?不。
/
也有同样的问题。好吧,谢谢,这似乎有效。你能解释一下吗?当然。例如,在Apache重写之后,
/help
/index.php?id=help
将进入下一次重写迭代。在下一次迭代中,它将尝试将
/index.php
重写为
/index.php?id=index.php
,并再次进行下一次迭代。要停止它,您必须添加一些条件,以防止使用该规则。哦,那么
[L]
呢?它不会停止重写过程吗?我提供的规则将#1:仅当文件不是index.php时重写,或#2:仅当请求的资源不存在(不是文件)时重写#一般来说,2更好(但因为我不知道您可能有多少其他规则,所以我提供了解决该问题的mora-than-1方法)。
[L]
告诉Apache,如果该规则匹配,则停止重写/匹配其他规则(但只要发生重写,它将进入下一次迭代)——这就是它的工作方式。请参阅以下链接:和
RewriteEngine On

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