我创建了一个动态的站点,并且信息(区域/类别/子类别)通过htaccess传递了很好的URL.例如,当用户潜入类别时,它按如下方式流动:
/parts/hard-drives
/parts/hard-drives/hard-drives-sas
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以在htaccess中扩展它,所以我可以传递更多项目并使用php获取变量,即:
/parts/hard-drives/hard-drives-sas/?manufacturer=dell&price=20
Run Code Online (Sandbox Code Playgroud)
我目前的htaccess文件行如下:
RewriteRule ^parts/([^/\.]+)/([^/\.]+)/?$ parts.php?p=$1&f=$2 [L]
RewriteRule ^parts/([^/\.]+)/?$ parts.php?p=$1 [L]
RewriteRule ^parts parts.php [L]
Run Code Online (Sandbox Code Playgroud)
您将看到第一行与/products/hard-drives/hard-drives-sas第二行相关/products/hard-drives,然后只是一个零件页面/parts
希望这是有道理的!
谢谢.
Pet*_*ter 14
使用QSAflag传递GET变量:
RewriteRule ^parts/([^/\.]+)/([^/\.]+)/?$ parts.php?p=$1&f=$2 [L,QSA]
RewriteRule ^parts/([^/\.]+)/?$ parts.php?p=$1 [L,QSA]
RewriteRule ^parts parts.php [L,QSA]
Run Code Online (Sandbox Code Playgroud)
文档:
当替换URI包含查询字符串时,RewriteRule的默认行为是丢弃现有查询字符串,并将其替换为新生成的查询字符串.使用[QSA]标志会导致组合查询字符串.
请考虑以下规则:
RewriteRule /pages/(.+) /page.php?page=$1 [QSA]使用[QSA]标志,/ pages/123?one = 2的请求将映射到/page.php?page=123&one=two.如果没有[QSA]标志,相同的请求将映射到/page.php?page=123-也就是说,现有的查询字符串将被丢弃.
http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_qsa
| 归档时间: |
|
| 查看次数: |
7612 次 |
| 最近记录: |