URL重写表现得很奇怪

时间:2015-01-29 17:51:33

标签: .htaccess

嗨我有一个重写规则如下

RewriteRule ^([^/.]+)/?$ /cityres?city=$1 [L]

这会使http://example.com/value-of-city这样的网址完全正常。

但我面临的问题是,如果用户输入

`http://example.com/anyrandomvalue` 

然后网址与

相同
`http://example.com/value-of-city` 

并尝试根据anyrandomvalue

获取结果

我怎么能避免同样的事?

1 个答案:

答案 0 :(得分:1)

您可以将正则表达式限制为一些允许的字符,如单词字符和连字符:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ /cityres?city=$1 [L,QSA]