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 № 1Nie 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.