маршрутизация каталогов .htaccess - PullRequest
1 голос
/ 16 декабря 2010

Я бился головой об клавиатуру, и я уверен, что это что-то глупо простое, что мне не хватает, но ...

Я использую tinyMVC, который обычно маршрутизирует запросы с /index.php/hello/foo или чем-то еще. Я пытаюсь настроить файл .htaccess, чтобы я мог покончить с /index.php/ и просто запросить / hello / foo ... Документация tinyMVC предлагает следующее (при доступе к файлам следует обращаться из / web /):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /web/index.php/$1 [L]

Однако он возвращает только неработающую ссылку. Если я использую строку запроса вместо каталога (то есть index.php? Qs = $ 1), он прекрасно подает файл (с присоединенной строкой запроса), но этот метод не работает с маршрутизацией tinyMVC.

Есть предложения?

РЕДАКТИРОВАТЬ: моя структура файла выглядит следующим образом:

docroot/
       /web/
           /index.php
       /.htaccess

В идеале запросы к mysite.com/hello должны быть прозрачно перенаправлены на mysite.com/web/index.php/hello, который распознает контроллер MVC.

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Проверьте журнал ошибок

/var/log/httpd/error_log

пока вы получаете неработающую страницу.

Это может быть связано с отсутствием разрешения на файл .htaccess.

Файл .htaccess должен находиться в корневой папке документа.

DOCROOT/
       /web/
           /index.php
       /.htaccess

Надеюсь, это поможет.

1 голос
/ 16 декабря 2010

Я думаю, пропущенный '/' в начале цели

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

EDIT

Хорошо, ваш комментарий помог правилу перезаписи ожидать, что URL, а не каталоги, поэтому вам не следует писать веб-часть.

...