是否可以让 .htaccess 在 URL 中查找第一个大写字母?
例如:
example.com/?country=United-Kingdom
应改写为:
example.com/United-Kingdom
但
example.com/?page=somepage
应改写为:
example.com/somepage
基本上我希望 htaccess 对以第一个大写字母开头的字符串采取行动。
是否可以让 .htaccess 在 URL 中查找第一个大写字母?
例如:
example.com/?country=United-Kingdom
应改写为:
example.com/United-Kingdom
但
example.com/?page=somepage
应改写为:
example.com/somepage
基本上我希望 htaccess 对以第一个大写字母开头的字符串采取行动。
尝试:
RewriteEngine On
RewriteRule ^([A-Z][a-zA-Z0-9-]+)$ /?country=$1 [L]
RewriteRule ^([a-z0-9-]+)$ /?page=$1 [L]
这两条规则将接受如下请求:http://example.com/United-Kingdom
并在内部将它们重写为:/?country=United-Kingdom
而内部重写之类的请求http://example.com/somepage
假设/?page=somepage
页面不能有大写字母。
要重定向浏览器以显示非查询字符串 URL,您需要:
RewriteCond %{THE_REQUEST} \ /(index\.php)?\?(page|country)=([^&\ ]+)
RewriteRule ^ /%3 [L,R=301]