.htaccess - 仅为一个参数重写内部友好URL

时间:2017-10-28 14:56:18

标签: apache .htaccess mod-rewrite url-rewriting

我无法使用.htaccess进行内部重写(也就是说,使用请求的URL形成内部请求,然后将其提供给仍然只看到原始请求的URL的客户端)只有的URL一个参数被美化,其余的请求参数仍然被追加。堆栈上的其他帖子只涉及一个相关参数,或者希望重定向每个参数。

即,

我可以为第一个项目符号执行此操作,单个参数重写;

RewriteEngine on
RewriteBase /

#Prettify test
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?overhoringen/open/([^/]+)/?$ /overhoringen/open.php?testId=$1 [L]

但是,我不确定如何在最后捕获请求查询,然后将其附加到内部重定向(如果存在的话),而?仍然在前面(以避免open?testId=9?other=param&more=param )等。
帮助这个真的很酷。 :

1 个答案:

答案 0 :(得分:2)

更改此行:

RewriteRule ^/?overhoringen/open/([^/]+)/?$ /overhoringen/open.php?testId=$1 [L]

为:

RewriteRule ^/?overhoringen/open/([^/]+)/?$ /overhoringen/open.php?testId=$1 [L,QSA]

添加QSA应将附加查询字符串附加到新网址。