使用 Laravel 的子域路由
Subdomain routing with Laravel
我在正确设置子域路由时遇到了一些问题。我想我的机器上有一些关于 htaccess 或虚拟主机的问题。
我的路线是这样的:
Route::group(array('domain' => 'store.munia.dk'), function()
{
Route::get('/', array('as' => 'store', 'uses' => 'Store\PageController@getHome'));
Route::get('faq', array('as' => 'store.faq', 'uses' => 'Store\PageController@getFaq'));
Route::get('documentation', array('as' => 'store.documentation', 'uses' => 'Store\PageController@getDocumentation'));
}
这在本地有效,但在我的生产机器上,只有第一个路由可用。其他路线将获得:
未找到:在此服务器上未找到请求的 URL/文档。
来自 Apache。
有谁知道这里的问题是什么?我正在使用 Laravel 中的默认 htaccess 文件,并且我没有对 Apache 设置进行任何更改。
这是我的虚拟主机配置文件:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
您应该在您的 apache2 中启用 mod_rewrite。您可以简单地在您的网络服务器中执行此操作
sudo a2enmod rewrite
之后你应该重启你的apache2
sudo service apache2 restart
这应该可以解决您的问题
这里缺少的是虚拟主机配置中的 AllowOverride
选项。此选项指定是否尊重 .htaccess
个文件并应用其内容。这应该得到它 运行:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
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>
我在正确设置子域路由时遇到了一些问题。我想我的机器上有一些关于 htaccess 或虚拟主机的问题。
我的路线是这样的:
Route::group(array('domain' => 'store.munia.dk'), function()
{
Route::get('/', array('as' => 'store', 'uses' => 'Store\PageController@getHome'));
Route::get('faq', array('as' => 'store.faq', 'uses' => 'Store\PageController@getFaq'));
Route::get('documentation', array('as' => 'store.documentation', 'uses' => 'Store\PageController@getDocumentation'));
}
这在本地有效,但在我的生产机器上,只有第一个路由可用。其他路线将获得:
未找到:在此服务器上未找到请求的 URL/文档。
来自 Apache。
有谁知道这里的问题是什么?我正在使用 Laravel 中的默认 htaccess 文件,并且我没有对 Apache 设置进行任何更改。
这是我的虚拟主机配置文件:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
您应该在您的 apache2 中启用 mod_rewrite。您可以简单地在您的网络服务器中执行此操作
sudo a2enmod rewrite
之后你应该重启你的apache2
sudo service apache2 restart
这应该可以解决您的问题
这里缺少的是虚拟主机配置中的 AllowOverride
选项。此选项指定是否尊重 .htaccess
个文件并应用其内容。这应该得到它 运行:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
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>