2015-12-10 3 views
0

Я думаю, что это простой, но я действительно смущен.Ресурсы, маршруты и страницы Laravel

  1. myproject.com/index.php показывает мой проект главная страница
  2. myproject.com показывает мой проект главную страницу тоже.
  3. В 1-м случае после маршрутизации он работает нормально (то есть: myproject.com/index.php/register)
  4. Во втором случае после его маршрутизации сбой (т.е. myproject.com/register) со следующей ошибкой: запрошенный URL/регистр не найден на этом сервере.

Так из-за этого, я думал, что я должен был изменить маршрут каждый запрос myproject.com к myproject.com/index.php

приложение/Config/app.php:

'url' => 'http://127.0.0.1/public', 

и т.д./HTTPD/CONF/httpd.conf:

<VirtualHost *:80> 
    DocumentRoot "/var/www/html/myproject/public/" 
    ServerName myproject.com 
</VirtualHost> 

Ничего не было настроено в файле hosts.

Цель: как я перетрассировка всех запросов от myproject.com в myproject.com/index.php с прячась index.php части от пользователей?

Посетители должны видеть, что: myproject.com , но я хочу, чтобы они на самом деле достичь: myproject.com/index.php

Обход:

<VirtualHost *:80> 
    DocumentRoot "/var/www/html/myproject/public/index.php" 
    ServerName myproject.com 
</VirtualHost> 

Результат: Я не могу достичь активов , (js, css-файлы) получается с 404, потому что моему браузеру не разрешено достигать myproject.com/public/. Root был установлен как myproject.com/public/index.php в настройках этого виртуального хоста.

+0

Разве вы не забыли добавить 'AllowOverride all' в директиву' 'в вашей конфигурации Vhost? –

ответ

2

Проверьте, если файл .htaccess присутствует в общедоступном каталоге.

Если нет, проверьте раздел Pretty Url.

Также убедитесь, что вы указали директивы <Directory> в своей конфигурации vhost, чтобы быть в безопасности.

Например:

<Directory "/var/www/html/myproject/public/"> 
    AllowOverride All 
    Allow from All 
</Directory> 

Что касается 'url' => 'http://127.0.0.1/public', в app.php я в значительной степени уверен, что /public это своего рода дополнительный.

'url' => 'http://127.0.0.1', должен работать нормально.

+0

Проверен раздел «Довольно URL». Часть каталога решила мою проблему. Спасибо. –

+0

Добро пожаловать. Рад знать, что это помогло :) –

1

Вам нужно переписать правила для этого:

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

Laravel документы: http://laravel.com/docs/5.1#pretty-urls

+0

спасибо, но это уже присутствует. –

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