2013-10-22 80 views
2

是否有可能使.htaccess查找URL中的第一个大写字母?是否可以用第一个大写字母来重写URL?

例如:

example.com/?country=United-Kingdom 

应该被重写到:

example.com/United-Kingdom 

BUT

example.com/?page=somepage 

应该被重写到:

example.com/somepage 

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

回答

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] 
+0

它的工作!谢谢。 – k4h