当页面存在同名时,mod_rewrite不起作用

时间:2013-09-24 17:47:06

标签: php apache .htaccess mod-rewrite

我有一个页面shirts.php,其中列出了所有衬衫,然后我有一个页面product.php?id = X,它显示了各个产品信息。

如果我写这样的规则:

RewriteRule ^mens_shirts/([0-9]+)$ product.php?id=$1 [L]

并且输入网址为mens_shirts/22,它会使用干净的网址正确显示产品页面。

但是,如果我写下如下规则:

RewriteRule ^shirts/([0-9]+)$ product.php?id=$1 [L]

并且输入网址为/shirts/20,而不是显示产品页面,它会显示shirts.php。

1 个答案:

答案 0 :(得分:1)

尝试一下:

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteRule ^shirts/([0-9]+)$ product.php?id=$1 [NC,L]

I believe that happens because you have MultiViews enabled, by disabling it, it should let you do what you want. Why, read here.

FollowSymLinks - 服务器将遵循此目录中的符号链接。