/ / .htaccess przekierowanie bez ciągu zapytania - apache, .htaccess

.htaccess przekierowanie bez łańcucha zapytania - apache, .htaccess

Próbuję przekierować (uwaga bez ciągów zapytań):

http://www.reviews.com/review/review_review.cfm?review_id=135223

do

http://www.reviews.com/

Obecna zasada:

Redirect 301 /review/review_review.cfm http://www.reviews.com/

Powoduje przekierowanie oryginalnego adresu URL http://www.reviews.com/?review_id=135223

Na podstawie kilku pytań dotyczących stosu tutaj i tutaj, Powinienem móc dodać ? do reguły przekierowania, jak poniżej:

Redirect 301 /review/review_review.cfm http://www.reviews.com/?

ale to przekierowuje do http://www.reviews.com/?. Wleczenie? pozostaje. Jak się tego pozbyć, to mnie zabija.

Odpowiedzi:

14 dla odpowiedzi № 1

Nie możesz pozbyć się obcych ? przy użyciu mod_alias. The ? zapobiegnie dołączeniu ciągu zapytania, ale w przypadku mod_alias niestety zawiera on ? jako część przekierowania. Jednak mod_rewrite nie "t, ponieważ dodanie ? do końca, który mówi, aby nie dołączał żadnego istniejącego ciągu zapytania, działa tak samo jak mod_alias, ale potem jest ponownie przetwarzany przez mod_alias, minus końcowy ?, więc wynik końcowy nie ma końca ? na końcu adresu URL. Więc coś takiego:

RewriteEngine On
RewriteRule ^/?review/review_review.cfm$ http://www.reviews.com/? [L,R=301]

I to zastąpiłoby Redirect komunikat.