mod_rewrite始终使用index.php

时间:2015-12-28 10:32:33

标签: apache .htaccess mod-rewrite

我正在重建我的一个网站(重新设计+ 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。

1 个答案:

答案 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] 
相关问题