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


mod_rewrite not working when page exists with same name

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

如果我这样写规则:

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

并且输入 URL mens_shirts/22它使用干净的 URL 正确显示产品页面。

但是,如果我像下面这样编写规则:

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

并且输入 URL 是 /shirts/20 ,它不显示产品页面,而是显示衬衫.php。

试一试:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^shirts/([0-9]+)$ product.php?id=$1 [NC,L]

我相信发生这种情况是因为您启用了MultiViews,通过禁用它,它应该让您做您想做的事。为什么,阅读这里。

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