我有我的网站http://example.com/category_name/product_name的结构。 我通过使用以下RewriteRule重写它到PHP:
RewriteRule ^(.*)/(.*)/$ detail-produktu.php?kategorie=$1&nazev=$2
但是,当我尝试重写地址http://example.com/user/david时发生问题。 这个URL总是以/user开头,所以我想重写它:
RewriteRule ^user/(.*)/$ index.php?user=$1
但是用/user的URL仍然是detail-produktu.php 。
我能做什么?
你有一些潜在的问题。
您声明的url( http://example.com/user/david )不以斜线结尾,但RewriteRule 模式包含尾部斜线,因此不匹配。
您将需要包含L标志来停止重写过程(至less是当前在.htaccess一轮处理),否则请求很可能被其他规则所捕获。
订单很重要。 最具体的规则需要首先。 所以,捕捉/user请求的规则必须是第一个。
例如:
RewriteRule ^user/([^/]+)$ index.php?user=$1 [L] RewriteRule ^([^/]+)/(.*)$ detail-produktu.php?kategorie=$1&nazev=$2 [L]
我已经从模式中删除了斜线。 如果需要尾部斜线,请将其添加回去。 我也使得这个模式更具限制性,所以它匹配整个path段,而不是任何东西 。