2014-06-15 4 views
1

Мой оригинальный URL был такой:Перенаправление URL получить переменные после перезаписи HTAccess

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 все еще работает. Я хочу, чтобы URL, чтобы быть перенаправлены на wwww.domain.com/BMW/X5/sale/3

Я пытался поставить [R] флаг в моем HTAccess RewriteRule, но тогда я получаю противоположные результаты ,

Как это исправить?

ответ

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] 
+0

Теперь я получаю это после того, как с помощью кода: www.domain.com////?merk=BMW&model=6-Serie&titel= BMW-3-serie-in-goede-staat! & Car_id = 1 И я получаю мою страницу index.php – user3450364

+0

Я ошибся в своем коде, извините. Я отредактировал свой ответ, не могли бы вы попробовать снова с новым кодом? Это должно работать сейчас ... –

Смежные вопросы