редирект mod_rewrite добавляет аргументы URL, которые я не хочу - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть много старых URL, которые мне нужно перенаправить.Сайт работает, нажимая index.php?url=whatever через правило mod_rewrite.Однако я не хочу, чтобы пользователь видел arg в случае перенаправления:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteRule ^clients_whatever1\.html$   /  [R]
    RewriteRule  ^clients_whatever2\.html$   /client-list/whatever2  [R]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    </IfModule>

Так что в случае:

(the domain)/clients_whatever2.html

онибудучи перенаправленным на:

(the domain)/client-list/whatever2?url=/client-list/whatever2

, но он должен просто читаться как:

(the domain)/client-list/whatever2

Как сделать перенаправление, чтобы оно показывалов URL браузера как любой другой запрос (для непереадресации)?

1 Ответ

0 голосов
/ 17 февраля 2012

Добавьте ? к цели правила, чтобы удалить исходные параметры строки запроса, т.е.

RewriteRule ^clients_whatever1\.html$   /?  [R,L]
RewriteRule  ^clients_whatever2\.html$   /client-list/whatever2?  [R,L]
...