如何强制重写和重定向 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 文件。

答案1

我不确定你想要什么行为,我在你的请求中没有看到提到 index.php,但它在你的配置中。无论如何,这会将表单中的任何 URL 重写hostname/XXhostname/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

相关内容