Я пытаюсь создать единую точку входа для моего приложения php mvc. Я использую apache2 как php-сервер в своей операционной системе ubuntu 14.04.
Мое дерево приложений:
локальный /MVC
я. контроллеры
II. модели
III. Просмотры
внутривенно Webroot
а. index.php b. .htaccess
v..htaccess
Мой корневой каталог.htaccess:
<IfModule mod_rewrite.c >
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
И код webroot/.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [PT, L]
</IfModule>
Но это показывает, как указано 500 статусных кодов:
Внутренняя ошибка сервера Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос.
Эта строка является проблемой:
RewriteRule ^(.*)$ index.php [PT, L]
Поскольку после PT,
есть пробел. Синтаксис mod_rewrite
довольно жесткий, и он нигде не пропускает лишние пространства.
Ваш webroot/.htaccess
может быть:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [PT,L]
</IfModule>
/var/log/Apache2/error.log
и будет иметь фактическую причину ошибки.