Переадресация .htaccess 301 конфликтует с rewriterule

0

Я пытаюсь перенаправить URL-адрес, но он противоречит правилу rewrite, я использую это правило перенаправления

Redirect 301 /antique-vintage-rugs/170-antique-oriental-rugs-carpets https://example.com/antique-vintage-rugs/170-antique-rugs    

мне потребовалась ссылка https://example.com/antique-vintage-rugs/170-antique-rugs?action=clear&template=170-antique-oriental-rugs-carpets вместо этого https://example.com/античном марочные-ковры/170-Антик-пледы

Мой URL-адрес Rewrite - это

RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^antique-vintage-rugs/(.+) results.php?action=clear&template=$1 [NC]

Есть ли способ получить желаемую ссылку на перенаправление вывода?

Теги:
.htaccess
redirect
mod-rewrite

2 ответа

0
Лучший ответ

Вы должны использовать mod_rewrite здесь вместо того, чтобы смешивать его с mod_alias (где принадлежит директива Redirect). Когда вы смешиваете два, оба обрабатывают один и тот же запрос.

Поэтому вместо Redirect используйте:

RewriteRule ^antique-vintage-rugs/170-antique-oriental-rugs-carpets https://example.com/antique-vintage-rugs/170-antique-rugs [L,R=301]

но убедитесь, что это до ваших других правил.

0

У меня была несколько схожая проблема. Я пытался добавить перенаправления из cpanel, в то время как у меня уже были некоторые правила перезаписи, написанные в моем файле.htaccess. Ошибка, которую я получил, - "Нет тега обработки для" Что я в конечном итоге сделал, так это то, что сохранил копию моих существующих правил и очистил.htaccess. Затем пошли и добавили все переадресации, которые мне нужны из cpanel, а затем в конце вернули мои собственные правила перезаписи в конце файла. Это сработало для меня

Ещё вопросы

Сообщество Overcoder
Наверх
Меню