Как принудительно перезаписать и перенаправить URL [дубликат]

У меня есть URL:

http://domain.com/i.php?c=PT , и я успешно переписал его на http://domain.com/PT . Но когда я просматриваю http://domain.com/i.php?c=PT , он не перенаправляет на http://domain.com/PT . Есть ли способ как перенаправить, так и переписать его?

Мой .htaccess:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^c=([a-zA-Z][a-zA-Z])$
RewriteRule ^/index.php$ /%1%2? [R=301,L]
RewriteRule ^([a-zA-Z][a-zA-Z])$  i.php?c=$1$2 [NC,L]

Спасибо

Обновление №1: Я хочу перенаправить с domain.com/i.php?c=PT -> domain.com/ PT.

У меня нет файла index.php.

0
задан 24 April 2015 в 17:15
1 ответ

Я не уверен, какое поведение вы хотите, я не вижу упоминания index.php в вашем запросе, но он есть в вашей конфигурации. В любом случае это перезаписывает любой URL-адрес из формы hostname / XX в hostname / i.php? C = XX

RewriteEngine On
RewriteRule ^/([a-zA-Z]{2})$  /i.php?c=$1 [R=301,NC,L]

Для противоположного перевода:

RewriteCond %{QUERY_STRING}  ^c=([a-zA-Z]{2})$
RewriteRule ^/i.php$         /%1? [R=301,NC,L]

И вы можете отлаживать ] добавление ваших правил перезаписи:

RewriteEngine On
RewriteLog "/tmp/rewrite.log"
RewriteLogLevel 3
0
ответ дан 5 December 2019 в 12:46

Теги

Похожие вопросы