Php 简单的HTACCESS规则重写不起作用

Php 简单的HTACCESS规则重写不起作用,php,.htaccess,Php,.htaccess,我似乎没有意识到为什么商店只是工作,而其他一切都是一样的?是否需要添加$1或$1 我希望这能奏效 RewriteRule ^shop _new_shopAll.php [NC] RewriteRule ^shop/new _new_shopNew.php [NC] RewriteRule ^shop/swarovski _new_shopSwar.php [NC] RewriteRule ^shop/signature _new_shopSig.php [NC] RewriteRule ^sho

我似乎没有意识到为什么商店只是工作,而其他一切都是一样的?是否需要添加$1或$1

我希望这能奏效

RewriteRule ^shop _new_shopAll.php [NC]
RewriteRule ^shop/new _new_shopNew.php [NC]
RewriteRule ^shop/swarovski _new_shopSwar.php [NC]
RewriteRule ^shop/signature _new_shopSig.php [NC]
RewriteRule ^shop/wedding _new_shopWedding.php [NC]
RewriteRule ^shop/celeb _new_shopCeleb.php [NC]
RewriteRule ^shop/sale _new_shopSale.php [NC]
RewriteRule ^shop/sw3 _new_shopSW3.php [NC]

这些是单独的链接。

您的第一条规则
重写规则^shop\u new\u shopAll.php[NC]
也将匹配
shop/new
,并在其他任何重写有机会接触链接之前替换该链接。之后的所有重写规则请参见
\u new\u shopAll.php

您需要在第一条规则的末尾添加一个
$
,如下所示:
重写规则^shop/?$\u new\u shopAll.php[NC]
这样它就不会匹配
shop/new
,其他规则也有机会匹配它

/shop?filter=Black = /_new_shopAll.php?filter=Black
/shop/celeb?filter=Black  = /_new_shopCeleb.php?filter=Black
/shop = /_new_shopAll.php
/shop/celeb = /_new_shopCeleb.php