我有一个页面衬衫.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
- 服务器将遵循此目录中的符号链接。