2

我正在尝试以这种方式使用友好的网址:

RewriteRule ^index/([1-9]{1,5})$ /index.php?id=$1 [L]
RewriteRule ^contact/([1-9]{1,5})$ /contact.php?id=$1 [L]

但这不起作用,我认为这是因为我在 RegEx 中使用文件的名称。

这工作正常:

RewriteRule ^home/([1-9]{1,5})$ /index.php?id=$1 [L]
RewriteRule ^emailus/([1-9]{1,5})$ /contact.php?id=$1 [L]

我不知道不能在friedly url中使用文件名,请问有人知道修改此配置的方法吗?在其他情况下,我将不得不更改我的文件的所有名称。

4

1 回答 1

1

这听起来像是Multiviews和 mod_negotiation 在不需要时抬起丑陋的头的情况。

可能发生的情况是您让 mod_negotiation 看到请求是/contact/123并注意到有一个/contact.php文件,然后立即提供该文件并完全绕过 mod_rewrite。您需要将其关闭:

Options -Multiviews
于 2013-10-09T20:07:43.607 回答