我花了太长时间试图弄清楚我的简单(?(mod_rewite规则发生了什么,但没有成功,所以我来了。
我有一堆规则,都能很好地工作,但这一条不会,因为我的一生都在工作,并在我的本地机器和我的实时服务器上抛出404:
RewriteRule ^mywaiver/([0-9]+),([0-9]+)/ /waiver_public.php?bid=$1&cid=$2 [L,NC]
目标是拥有
https://example.com/123456,654321/
被重写为
https://example.com/waiver_public.php?bid=123456&cid=654321
直接点击url(即重写后的版本(效果很好,只是不是"干净"版本,因为它根本不会重写。
我的日志中除了访问日志中的404之外什么都没有得到。
我是不是错过了什么愚蠢的东西?在这一点上,任何来自另一双眼睛的帮助都将是惊人的。
Ben
对于您显示的示例/尝试,您可以尝试以下操作吗。请确保在测试URL之前清除浏览器缓存。所有不存在的页面将由带有参数的waiver.php文件提供服务。
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(d+),(d+)/?$ waiver.php?bid=$1&cid=$2 [QSA,L]