Здравствуйте
У меня на сервере есть папка templates, которая находится в корневой директории
А так же есть контроллер с именем templates, url выглядит так... http://site.com/templates
При переходе по http://site.com/templates контроллер template не работает, так как он отображает папку templates
Url работает так: после первого слэша - контроллер, после второго модель, то есть http://site.com/templates/blog, где templates это контроллер, а blog это модель
В htaccess есть правило RewriteRule ^(.+)$ index.php?url=$1 [QSA,L], которое разбивает url по слэшу
Вопрос:
Подскажите правило для .htaccess, чтобы он подгружал контроллер, а не папку!?
AddDefaultCharset UTF-8
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.stackoverflow.com$ [NC]
RewriteRule ^(.*)$ http://stackoverflow.com/$1 [R=301,L]
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)(/)$ $1 [R=301,L]
Options -Indexes
Options -Includes
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Ответ
Указанные правила работают только для несуществующих каталогов, файлов, и жестких ссылок.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Эта строчка RewriteCond %{REQUEST_FILENAME} !-d не дает запустить index.php
Попробуйте сделать так:
RewriteCond %{REQUEST_URI} ^/templates/
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Комментариев нет:
Отправить комментарий