2

是否可以让 .htaccess 在 URL 中查找第一个大写字母?

例如:

example.com/?country=United-Kingdom 

应改写为:

example.com/United-Kingdom

example.com/?page=somepage 

应改写为:

example.com/somepage

基本上我希望 htaccess 对以第一个大写字母开头的字符串采取行动。

4

1 回答 1

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页面不能有大写字母。

要重定向浏览器以显示非查询字符串 URL,您需要:

RewriteCond %{THE_REQUEST} \ /(index\.php)?\?(page|country)=([^&\ ]+)
RewriteRule ^ /%3 [L,R=301]
于 2013-10-22T22:27:17.327 回答