重写htaccess后重定向url获取变量

时间:2014-06-15 01:21:28

标签: .htaccess url-redirection

我的原始网址是:

wwww.domain.com/car-details.php?merk=BMW&model=X5&titel=sale&car_id=3

我已将其重写为:

wwww.domain.com/BMW/X5/sale/3

把它放在我的.htaccess中:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)/([0-9]+)?$ /car-details.php?merk=$1&model=$2&titel=$3&car_id=$4 [L,QSA]

当我输入Url wwww.domain.com/car-details.php?merk=BMW&model=X5&titel=sale&car_id=3 时,它仍然有效。我希望将该网址重定向到 wwww.domain.com/BMW/X5/sale/3

我试图将[R]标志放在我的htaccess RewriteRule中,但后来我得到了相反的结果。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

做出你想做的事情是一个很好的决定 但是你将遇到一个循环问题。

您可以使用此代码

来避免它
RewriteEngine on

RewriteCond %{THE_REQUEST} \s/car-details\.php\?merk=([^&]+)&model=([^&]+)&titel=([^&]+)&car_id=([0-9]+) [NC]
RewriteRule . /%1/%2/%3/%4? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([0-9]+)?$ /car-details.php?merk=$1&model=$2&titel=$3&car_id=$4 [L]