友好的URL与文件的名称相同

时间:2013-06-27 15:28:32

标签: apache .htaccess url mod-rewrite friendly-url

我正试图以这种方式使用友好网址:

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]

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

1 个答案:

答案 0 :(得分:1)

这听起来像是Multiviews的情况,mod_negotiation在其不受欢迎的情况下养成了丑陋的脑袋。

可能发生的事情是你有mod_negotiation看到请求是/contact/123并注意到有/contact.php文件,然后立即提供该文件并完全绕过mod_rewrite。你需要把它关掉:

Options -Multiviews