2015-02-21 2 views
2

У меня есть некоторые проблемы с настройкой правильной поддомены. Я думаю, что у меня есть некоторые проблемы относительно htaccess или виртуальных хостов на моей машине.Поддомен маршрутизации с Laravel

Мой маршрут выглядит следующим образом:

Route::group(array('domain' => 'store.munia.dk'), function() 
{ 
    Route::get('/', array('as' => 'store', 'uses' => 'Store\[email protected]')); 
    Route::get('faq', array('as' => 'store.faq', 'uses' => 'Store\[email protected]')); 
    Route::get('documentation', array('as' => 'store.documentation', 'uses' => 'Store\[email protected]')); 
} 

Это работает локально, но на моей рабочей машине, только первый маршрут доступен. Другие маршруты получат:

Не найдено: Запрашиваемый URL/документация не найдена на этом сервере.

От Apache.

У кого-нибудь есть идеи, в чем проблема? Я использую файл htaccess по умолчанию из Laravel, и я не внес никаких изменений в настройку Apache.

Вот мой виртуальный хост конф:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 
+1

Попробуйте 'store.munia.dk/index.php/faq' – lukasgeiter

+0

Это работает. Итак, как мне позаботиться об этом для субдоменов? Удаление index.php. Он не нужен без субдоменов. – Stromgren

+0

Это звучит так, как будто субдомен не активировал '.htaccess' (' AllowOverride All'). Можете ли вы изменить конфигурацию vhost? – lukasgeiter

ответ

2

Вы должны включить mod_rewrite в вашем apache2. Вы можете сделать это просто в вашем веб-сервере

sudo a2enmod rewrite 

после этого вы должны перезагрузить apache2

sudo service apache2 restart 

Это должно решить вашу проблему

+0

@Stromgren Как это решило вашу проблему, если остальная часть приложения работала правильно? Просто любопытно ... – lukasgeiter

+0

У меня была такая же проблема с настройкой моего локального сервера, и для меня это помогло mod_rewrite помогло –

+0

Конечно, но если у OP было уже запущенное приложение (в основном домене), mod_rewrite должен был быть включен или ничего не получилось бы , Вот почему я немного озадачен ... – lukasgeiter

3

То, что здесь отсутствует является AllowOverride опция в конфигурации виртуального хоста , Эта опция указывает, будут ли соблюдаться файлы .htaccess и их содержимое. Это должно заставить его работать:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html 

    <Directory "/var/www/html"> 
     AllowOverride all 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost>