是否可以使.htaccess在URL中查找第一个大写字母?
例如:
example.com/?country=United-Kingdom
应改写为:
example.com/United-Kingdom
BUT
example.com/?page=somepage
应改写为:
example.com/somepage
基本上我希望htaccess对以第一个大写字母开头的字符串采取行动。
答案 0 :(得分:2)
尝试:
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
,假设网页不能有大写字母。
要重定向浏览器以显示非查询字符串网址,您需要:
RewriteCond %{THE_REQUEST} \ /(index\.php)?\?(page|country)=([^&\ ]+)
RewriteRule ^ /%3 [L,R=301]