【发布时间】:2014-07-02 07:14:09
【问题描述】:
以下是几个 URL 示例:
domain.com/?view=home&action=update
domain.com/?view=home&page=1&action=update
domain.com/?view=home&action=update&page=2&sort=desc
domain.com/?view=home&sort=desc&page=2&action=update
如何使我的 .htaccess 将 URL(上述任何格式)重写为以下结构:
domain.com/home/1/desc/update
不同情况下get参数的数量不同,参数的顺序也不同。
此外,我需要能够 $_GET 用 PHP 重写后的值。
应用程序将使用以下键作为查询字符串:
view, item, page, sort, dir, action.
所有这些都是可选的,我以后可能需要添加更多。
我尝试了所有这些单独的,没有一个工作:
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteRule ^/([^?]*)$ /index.php?$1 [NC,L,QSA]
RewriteRule ^([^?]*)$ /index.php?path=$1 [NC,L,QSA]
RewriteRule ^(.*)$ index.php?params=$1 [NC]
谢谢。
【问题讨论】:
-
你尝试过哪些规则?
-
添加到原始问题
-
我知道我需要更好地学习 mod rewrite 和 regex,但现在我有一个任务需要处理。
-
@Prix,在本例中不起作用,因为查询键的顺序严格,而在我的情况下它们不是。
标签: php apache .htaccess mod-rewrite query-string