我正在重建我的一个网站(重新设计+ pdo而不是常规的mysql)。 到目前为止一切顺利,除了.htaccess中的1个RewriteRule外,一切都很顺利。
我的所有网址改写都适用于这种规则:
RewriteRule pages/(.*)/ index.php?type=page&page=$1&%{QUERY_STRING}
RewriteRule pages/(.*) index.php?type=page&page=$1&%{QUERY_STRING}
(注意:使用index.php)
对于我的购物车,我想使用一个干净,单独的页面,使用此规则:
RewriteRule ^shop/shopping-cart-overview/$ /pages/shoppingcart/overview.php
RewriteRule ^shop/shopping-cart-overview$ /pages/shoppingcart/overview.php
问题:它不使用文件" /pages/shoppingcart/overview.php",它仍然像其他规则一样使用index.php。
我在txt上传了完整的htaccess,所以你可以自己阅读: www.mymobisite.be/htaccess.txt
提前感谢您的时间,帮助和建议!
Tom V。
答案 0 :(得分:0)
问题在于规则的顺序。 shop/shopping-cart
位于pages
规则之前。
第一条规则将shop/shopping-cart-overview/
重写为/pages/shoppingcart/overview.php
,然后将其重写为index.php?type=page&page=shoppingcart/overview.php
。
您应该重新排序重写规则或使用[L]
修饰符(L = last)。
RewriteRule ^shop/shopping-cart-overview/$ /pages/shoppingcart/overview.php [L]
RewriteRule ^shop/shopping-cart-overview$ /pages/shoppingcart/overview.php [L]