2014-09-18 10 views
0

Я создал Slim PHP-приложение и опубликовал его на своем веб-сервере.Тонкие маршруты PHP не работают

маршрутов доступны только если просматривать непосредственно через index.php страницу

, например example.com/index.php/login и /index.php/signup

и оказывают ожидаемые виды

однако если опустить index.php и просматривать на `example.com/login 'или' example.com/signup 'Я получаю 404

Мой .htaccess файл находится в той же папке, что и index.php

public/ 
├── .htaccess 
├── index.php 

папка public конфигурируется как DocumentRoot /var/www/example.com/public в апача

Мой .htaccess файл содержит следующее:

<IfModule mod_rewrite.c> 
<IfModule mod_negotiation.c> 
    Options -MultiViews 
</IfModule> 

RewriteEngine On 

# Redirect Trailing Slashes... 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

# Handle Front Controller... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 
</IfModule> 

Любые предложения, как исправить мой маршрут?

ответ

3

Слим рекомендует использовать эти правила для Apache. (.htaccess)

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [QSA,L] 

Rembember вам необходимо установить AllowOverride директиву «Все» в конфигурации Apache и убедитесь, что «/ общественность» Ваш виртуальный корневой каталог.

+0

У меня эти строки в файле 'htaccess'. – Luke

+0

Я не редактировал мой 'apache2.conf' для' AllowOverride' – Luke

+1

Это работало для меня, но в последней строке, где указано RewriteRule^index.php [QSA, L] *, мне пришлось удалить звездочку * для нее Работа. –

Смежные вопросы