我有两个laravel应用程序,我希望放在一个实时的Apache服务器上。操作系统是CentOs。我已经按照这个设置来设置虚拟主机:https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-centos-7
当我尝试访问我的链接http://lara.ci/public/时,我得到的全部是404 Not Found。以下是我的网站可用文件:
<VirtualHost *:80>
ServerName www.lara.ci
ServerAlias lara.ci
DocumentRoot /var/www/lara.ci/public_html/public
ErrorLog /var/www/lara.ci/error.log
CustomLog /var/www/lara.ci/requests.log combined
</VirtualHost>
该应用的文件位于public_html文件夹中。我甚至在搜索了所有方法之后尝试了以下方法,但无法让它工作:
在httpd.conf中设置以下内容
<Directory />
AllowOverride All
</Directory>
我公开的.htaccess文件似乎正在工作,因为当我尝试下面的内容时,我得到重定向。还启用了mod_rewrite:
<IfModule mod_rewrite.c>
Redirect 301 / https://google.com
...
赞赏协助
答案 0 :(得分:0)
是否正确,即使您的document_root已指向公共子文件夹,您仍将转到http://lara.ci/public?
答案 1 :(得分:0)
问题在于您将文档根指向:
DocumentRoot /var/www/lara.ci/public_html/public
应该是:
<VirtualHost *:80>
ServerName www.lara.ci
ServerAlias lara.ci
DocumentRoot /var/www/lara.ci/public_html
ErrorLog /var/www/lara.ci/error.log
CustomLog /var/www/lara.ci/requests.log combined
</VirtualHost>
答案 2 :(得分:0)
在挖掘之后,我意识到我的隐藏文件没有复制,例如.env,.gitignore等,因为我使用cp
命令来复制我的文件。为了解决这个问题,我运行了如下命令(来源:https://superuser.com/questions/61611/how-to-copy-with-cp-to-include-hidden-files-and-hidden-directories-and-their-con):
cp -r /var/www/html/lara/.[^.]* /var/www/lara.ci/public_html
有效地复制了所有隐藏文件,一切运行顺利。