我想重写像http://www.domain.tld/test/page.html?id=1&required=1&foo=bar
这样的网址
到http://www.domain.tld/wrapper.php?url=[FULL REQUEST URL]
我希望$_GET['url']
为http://www.domain.tld/test/page.html?id=1&required=1&foo=bar
到目前为止我已尝试过:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*required=.*)$ [NC]
RewriteRule ^ /wrapper.php?url=http://%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING} [L]
但遗憾的是$_GET['url']
现在只有http://www.domain.tld/test/page.html?id=1
,其他参数缺失。
正确的apache synthax应如何看待?
答案 0 :(得分:0)
尝试将QSA添加到重写规则
[L,QSA]
答案 1 :(得分:0)
您可以在根目录中使用这样的规则.htaccess:
RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)required=[^&]+ [NC]
RewriteRule !^wrapper\.php /wrapper.php/http://%{HTTP_HOST}%{REQUEST_URI}@%{QUERY_STRING}? [L,NC]
RewriteCond %{REQUEST_URI} ^(/wrapper\.php)/([^@]*)@(.+)$ [NC]
RewriteRule ^ %1?url=%2\?%3 [L,B]