.htaccess переписать на mediatemple

Я размещен на сервере mediatemple DV 4.0 и использую следующие строки в моем файле htaccess (правила перезаписи для CMS)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?([A-Za-z0-9_-]+)/?$ index.php?id=$1 [QSA,L]

это работает хорошо, но когда я пытаюсь сделать перенаправление 301, чтобы указать старую страницу на новый адрес, он добавляет в URL-адрес некоторые ненужные вещи, например:

?id=locations-maryland

Как изменить правило перезаписи, чтобы сохранить ту же функциональность, но удалить последнюю часть, которая в основном делает перенаправление 301 бессмысленным, поскольку CMS не может не найти ни одной страницы с этим спам-адресом.

Такое бывает только на медиатемпле. Я где-то слышал про добавление/удаление дополнительного вопросительного знака, но у меня недостаточно знаний, чтобы решить это самостоятельно.


person Mark H.    schedule 25.09.2012    source источник


Ответы (1)


Добавьте ? в конец цели перенаправления. Пример:

Redirect /something/ /something/else/? 

или если вы используете mod_rewrite:

RewriteRule ^/?something/(.*)$ /something/else/$1? [L,R=301]
person Jon Lin    schedule 25.09.2012
comment
Спасибо. Это работает, но добавляет вопросительный знак в конце URL-адреса. Любой способ удалить его, но сохранить результат? - person Mark H.; 26.09.2012
comment
@МаркХ. с Redirect, я не думаю, что есть какой-либо другой способ, без ? строка запроса просто добавляется. Но если вы используете mod_rewrite (второй), знак вопроса не будет отображаться в перенаправлении. - person Jon Lin; 26.09.2012