我将如何转换此网址:
http://example.com/this/is/my/path.html
http://example.com/this/is/my/path.html?var=2&varr=3
到此:
http://example.com?path=this/is/my/path.html
http://example.com?path=this/is/my/path.html&var=2&varr=3
我已经看过很多关于如何将它转换为多个get变量的教程,但是对于包含get变量的整个路径也没有。
答案 0 :(得分:2)
请参阅下面的编辑
试试这个:
RewriteEngine On
RewriteRule ^(.*)$ ?path=$1 [QSA]
RewriteRule的第一部分将捕获没有查询字符串的完整路径(GET参数)。 RewriteRule的第二部分将使用名为"路径"的GET参数重写。包含我们之前捕获的完整路径。然后,使用[QSA]标志(应该是Apache的默认行为),我们告诉Apache保留原始GET参数并将其附加到新的查询字符串。
编辑:
这个答案存在一个主要问题,即重定向循环。这是一个更好的解决方案:
RewriteEngine On
RewriteCond %{QUERY_STRING} !path=
RewriteRule ^(.*)$ ?path=$1 [QSA,L]