#php #.htaccess
Вопрос:
Я создаю пользовательский проект MVC, и у меня есть базовая папка /mvc
, содержащая .htaccess
routes.php
файлы и размещенная в C:xampphtdocs
корневой папке. Вот мои файлы:
C:xampphtdocsmvc.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !.*.png$ [NC]
RewriteCond %{REQUEST_URI} !.*.jpg$ [NC]
RewriteCond %{REQUEST_URI} !.*.css$ [NC]
RewriteCond %{REQUEST_URI} !.*.gif$ [NC]
RewriteCond %{REQUEST_URI} !.*.js$ [NC]
RewriteRule ^((?!routes.php). )$ /mvc/routes.php [L]
</IfModule>
C:xampphtdocsmvcroutes.php
<?php
# Routing logic goes here...
Проблема
Я хотел бы перейти routes.php
в mvc/app
папку, поэтому я изменил эту строку в .htaccess
RewriteRule ^((?!routes.php). )$ /mvc/routes.php [L]
к этой строке:
RewriteRule ^((?!routes.php). )$ /mvc/app/routes.php [L]
Но это, похоже, не работает! Я получаю ошибку 500. Что я здесь делаю? Я хотел бы перенаправить ВСЕ запросы (включая любые .php
или другие запросы на файлы, за исключением изображений) на mvc/app/routes.php
, который будет обрабатывать HTTP-запросы и направлять их соответствующим контроллерам.
Ответ №1:
Попробуйте с:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !.(png|jpg|css|gif|js)$ [NC]
RewriteRule ^((?!app/routes.php). )$ /mvc/app/routes.php [L]
</IfModule>
Комментарии:
1. Обновление: все, что мне нужно было сделать, это изменить
^((?!mvc/app/routes.php). )$
^((?!app/routes.php). )$
.mvc/
здесь это не нужно, потому.htaccess
что уже находится внутриmvc/
папки! Спасибо!