проблема с перезаписью URL .htaccess - PullRequest
0 голосов
/ 06 апреля 2011

Я пишу фреймворк MVC на php и пытаюсь переписать URL-адреса, используя этот шаблон:

www.example.com / contact / send /

читать как

www.example.com / index.php? url = contact / send /

Так что я могу взорвать переменную $ _GET ['url']и использовать в fw для маршрутизации.

Отлично работает практически в любом случае, единственная проблема заключается в том, что когда я пытаюсь использовать строку, которая тоже является папкой, ak 'admin', без косая черта, в URL отображаются переменные.

Примерно так:

www.example.com / admin / - ОК, URL остается таким же

www.example.com / admin - Здесь проблема, URL перенаправляет браузер на:

www.example.com / admin /? Url = admin

$_GET ['url'] установлен и работает нормально в обоих случаях, но я не хочу показывать 'url = admin'.

Есть какой-нибудь способ сделать это?

Спасибо!

.htaccess:

RewriteEngine On

RewriteCond% {SCRIPT_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -F

RewriteCond% {SCRIPT_FILENAME} -d RewriteCond% {REQUEST_FILENAME} -d

индекс RewriteRule ^ (. *) $.php? url = $ 1 [PT, L]

1 Ответ

1 голос
/ 06 апреля 2011

Я думаю, что вам не хватает!:

RewriteCond %{REQUEST_FILENAME} !-d

Вы хотите переписать, когда это НЕ каталог.

Редактировать: Или, возможно, исключение

RewriteCond %{REQUEST_URI} !^/admin/?
...