首页 > 解决方案 > 使用 htaccess 将查询重写为路径

问题描述

如何htaccess重写以下 URL 结构:

http://example.com/detail.php?id=polo&categ=wears

http://example.com/wears/polo/

我已经尝试了下面的代码,但它对我不起作用。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.+)/(admin|css|fonts|ico|include|js|images|img|products|slide)/(.*)$ $2/$3 [L]
RewriteRule ^(.*)/(.*)/$ detail.php?id=$1&categ=$2
</IfModule>

标签: phpmysql.htaccess

解决方案


当我在 URL 中包含斜杠时,您的代码对我有用。

工作->http://example.com/wears/polo/

不工作->http://example.com/wears/polo

此外,您需要从.*表达式中排除斜杠字符。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.+)/(admin|css|fonts|ico|include|js|images|img|products|slide)/(.*)$ $2/$3 [L]
RewriteRule ^([^/]*)/([^/]*)/?$ detail.php?id=$1&categ=$2
</IfModule>

推荐阅读