2015-01-29 5 views
1

Привет У меня есть один из правил перезаписи, как показано нижеURL Rewrite себя странно

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

Это делает URL как http://example.com/value-of-city и это работает прекрасно.

Но вот проблема я столкнулся в том, что если пользователь

`http://example.com/anyrandomvalue` 

затем URL ведут себя так же, как

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

и пытается выборку результатов на основе anyrandomvalue

Как я могу избежать же ?

ответ

1

Вы можете ограничить регулярное выражение для некоторых допустимых символов, как символ слова и дефис:

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

У меня есть URL как 'HTTP: // example.com/delhi' ... Теперь, если пользователь печатает' http: // example.com/examplecity' то как я буду дифференцироваться. Я знаю один метод добавления префиксов, но есть ли другой подход. – Gags

+0

Правила не могут различать 'delhi' и' examplecity'. Правило может просто заблокировать 'examplecity $' например. – anubhava

+0

okies .. got u .. и как я могу убедиться, что «папки» будут исключены из этой перезаписи. Например, если у меня есть папка 'images', то http://example.com/images не приведет к тому же URL. – Gags

Смежные вопросы