Apache 为什么不是';这条修改规则是否按文件规定运行?

Apache 为什么不是';这条修改规则是否按文件规定运行?,apache,mod-rewrite,Apache,Mod Rewrite,我正在尝试调试托管站点上的URL重写,因为我无法访问vhost.conf,因此无法设置重写日志。我还可以如何调试不起作用的规则 如果有人有任何见解,这就是我试图澄清的规则: RewriteRule ^([^/]+)\.([^/]+)$ xslt.php [L] 我希望发生的是:有点但没有斜线的URL被重写为指向xslt.php,然后停止重写,这样它就不会进入循环。到底发生了什么?500内部服务器错误(闻起来像是在循环)。我知道我可以添加一个RewriteCond来专门排除xslt.php,但我

我正在尝试调试托管站点上的URL重写,因为我无法访问
vhost.conf
,因此无法设置重写日志。我还可以如何调试不起作用的规则

如果有人有任何见解,这就是我试图澄清的规则:

RewriteRule ^([^/]+)\.([^/]+)$ xslt.php [L]

我希望发生的是:有点但没有斜线的URL被重写为指向
xslt.php
,然后停止重写,这样它就不会进入循环。到底发生了什么?500内部服务器错误(闻起来像是在循环)。我知道我可以添加一个
RewriteCond
来专门排除
xslt.php
,但我更愿意理解为什么这会首先中断。

为什么它不会循环?php有点,但没有斜线。尝试将选项更改为[L,NS]

编辑:啊,我明白了。您缺少的是[L]终止了对该请求的所有重写,但仍然生成了一个子请求,该子请求获得了自己的重写过程。[NS]抑制该传递。

使用新的重写URL
xslt.php
,然后该URL也与您的模式匹配

所以试试这个:

RewriteCond $0 !^xslt\.php$
RewriteRule ^([^/]+)\.([^/]+)$ xslt.php [L]

可能是。这是一种足够深的魔法,在“相当好”之前还有很多领域