我需要一些像这样重写 URI 的 htaccess 规则:
http://sub.domain.tld/en/about?a=1&b=2
对此:
http://sub.domain.tld/about.php?lang=en&a=1&b=2
或更简单:
http://sub.domain.tld/about.php?a=1&b=2&lang=en
没有不同...
但是用户应该看到第一个 URI 而不是转换后的 URI(不应该被重定向)。
你可以试试这个:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+) [NC]
RewriteCond %{QUERY_STRING} ([^/]+) [NC]
RewriteRule .* %2.php?%3&lang=%1? [L]
静默地图
http://sub.domain.tld/LangCode/FileName?key1=val1&key2=val2
带或不带斜杠。始终显示在浏览器的地址栏中,
至:
http://sub.domain.tld/FileName.php?key1=val1&key2=val2&lang=LangCode
对于永久重定向,替换[L]
为[R=301,L]
这是 .htaccess 代码:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule en/about?a=(.*)&b=(.*)$ about.php?lang=en&a=$1&b=$2