如何设置别名或VirtualHost以在Apache2上运行laravel项目
我开始学习如何在vps上设置灯,并尝试运行laravel项目 这是我的000-default.conf如何设置别名或VirtualHost以在Apache2上运行laravel项目,laravel,laravel-5,routing,apache2,virtualhost,Laravel,Laravel 5,Routing,Apache2,Virtualhost,我开始学习如何在vps上设置灯,并尝试运行laravel项目 这是我的000-default.conf <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html Alias /laravelproject /var/www/laravelproject/public <Directory /var/www/> Options I
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Alias /laravelproject /var/www/laravelproject/public
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
服务器管理员webmaster@localhost
DocumentRoot/var/www/html
别名/laravelproject/var/www/laravelproject/public
选项索引跟随符号链接多视图
允许超越所有
命令允许,拒绝
通融
我尝试使用/laravelproject进行访问,它可以正常工作,因为我被重定向到登录页面ip/laravelproject/login(就像我为未登录的用户设置了中间件,它可以在本地homestead虚拟机上工作一样)。但我有一个404文件找不到的错误。这不是一个设计精美的laravel错误,而是一个原始而丑陋的服务器错误
找不到
在此服务器上找不到请求的URL/laravelproject/login
“”端口80上的Apache/2.4.10(Ubuntu)服务器
当然,我没有要设置的laravelproject.com域,我只想通过我的_server_ip/laravelproject访问它
如何设置virtualhost或别名以运行所有路由?您需要确保将
/var/www/laravelproject/public
目录设置为AllowOverride all
(我相信您已通过将/var/www
设置为all来解决此问题)。然后确保公用
目录中的.htaccess
文件设置正确:
这是因为Apache正在查找不是文件的/public/login/index.html
。Laravel的.htaccess
会适当地重定向这些请求,但它必须位于您的公用文件夹中,Apache必须允许进行覆盖
编辑:
选项索引跟随符号链接多视图
允许超越所有
如果尚未启用,您也可以尝试启用apache mod rewrite
sudo a2enmod重写
sudo systemctl重新启动apache2
htaccess与您发布的相同。问题正是你说的。我试图用index.php在public中创建一个文件夹登录,这就是它加载的内容,请参见编辑。显然,公用文件夹不允许覆盖,所以将该代码放在apache配置中,并显式允许该文件夹。我尝试编辑/etc/apache2/apache2.conf的选项索引FollowSymLinks AllowOverride All required All allowed<Directory /var/www/laravelproject/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>