На этот вопрос уже есть ответ здесь:
У меня есть 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.
Я не уверен, какое поведение вы хотите, я не вижу упоминания 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