2015-01-14 4 views
0

Я пытаюсь перенаправить URL, но его противоречивый с RewriteRule, я использую это правило перенаправления.htaccess 301 редирект конфликтует с RewriteRule

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/antique-vintage-rugs/170-antique-rugs

Мой Rewrite URL это

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

есть ли ш ay Я могу получить желаемую ссылку на перенаправление вывода?

ответ

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, а затем в конце вернули мои собственные правила перезаписи в конце файла. Это сработало для меня

Смежные вопросы