htaccess不删除URL参数

时间:2014-01-08 18:48:17

标签: apache .htaccess mod-rewrite

我想从所有类型.html的网址中删除Trailing Slash 我使用以下代码

RewriteRule (.+?)\.html.+$ http://%{HTTP_HOST}/t4/$1.html [L,R=301]

此代码非常接近我们的需要。当我们尝试重定向

这样的网址时,我们会遇到此代码的问题
/a.html/b.php?c=1

此网址已重定向至

/a.html?c=1

我不知道为什么会这样。我希望这个网址是/a.html 看起来像URL参数被保留。你可以帮忙解决重定向时删除的URL参数。

2 个答案:

答案 0 :(得分:0)

尝试在规则的目标末尾添加?

RewriteRule (.+?)\.html.+$ http://%{HTTP_HOST}/t4/$1.html? [L,R=301]

答案 1 :(得分:0)

DOCUMENT_ROOT/.htaccess文件中尝试此规则:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?\.html).+?[?\s]
RewriteRule ^ %1 [R=302,L]