2016-04-30 2 views
1

У меня есть следующий маршрут: Route::resource('users', 'ProfileController'); Когда я перехожу на site.com/users/123, он загружает страницу правильно. Я также могу перейти на site.com/index.php/users/123 и получить ту же страницу (не уверен, что laravel по умолчанию предназначен для этого).Laravel, обслуживающий страницы с неверного маршрута

Если я меняю URL на site.com/does_not_exist/users/123, laravel возвращает 404, как и следовало ожидать. Однако, если я перехожу к site.com/does_not_exist/index.php/users/123, laravel загружает страницу. Я могу поместить любой случайный путь, несуществующий путь между сайтом site.com и index.php, и он будет работать.

Почему не laravel не возвращает 404 для этого? Как мне это исправить?

ответ

0

Поскольку index.php является index.php в общей папке, которая обрабатывает входящий запрос и сво автоматически сгенерированный загрузчик класса

Это может сработать (аналогичный вопрос о том, как это исправить)

1 не -Renaming в server.php к index.php (никаких модификаций)

2-Скопировать .htaccess от публики (как сказано ниже rimon.ekjon)

3-Изменение .htaccess него немного следующим за статики :

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/public/ 
RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC] 

Если есть какие-либо другие статические файлы, необходимые только добавить расширение к предыдущему объявленного списка

Source

+0

Как бы это поможет? server.php находится вне корня документа, никто не может получить к нему доступ. – Telanor