【发布时间】:2012-12-27 18:10:06
【问题描述】:
我有一个可能包含三个参数的 URL:
- ?category=计算机
- &subcategory=笔记本电脑
- &product=dell-inspiron-15
我需要 301 将此 URL 重定向到其友好版本:
http://store.example.com/computers/laptops/dell-inspiron-15/
我有这个,但如果查询字符串参数是任何其他顺序,则无法使其工作:
RewriteCond %{QUERY_STRING} ^category=(\w+)&subcategory=(\w+)&product=(\w+) [NC]
RewriteRule ^index\.php$ http://store.example.com/%1/%2/%3/? [R,L]
【问题讨论】:
-
最简单的解决方案是让 PHP 进行重定向。
-
@Gerben 假设一个人正在使用 PHP ...这个问题是特定于 apache 的,它可以与任意数量的语言/框架/等一起使用。诚然,使用 PHP(或任何其他脚本或编程语言)来操作 URL 参数有一些优势,但这个问题专门针对 apache/mod_rewrite。
-
在这种特定情况下,OP 似乎正在使用 PHP,因为 RewriteRule 包含 index.php。
-
stackoverflow.com/questions/69290934/… - 任何人都可以帮助解决这个类似的问题
标签: apache .htaccess mod-rewrite redirect url-rewriting