我有一个网址:
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 文件。
答案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