我在/var/www/polyforms.me
创建了一个新的laravel项目并创建了虚拟主机文件polyforms.conf
:
<VirtualHost *:80>
ServerName polyforms.dev
ServerAdmin webmaster@localhost
DocumentRoot /var/www/polyforms.me/public
ErrorLog ${APACHE_LOG_DIR}/polyforms.me-error.log
CustomLog ${APACHE_LOG_DIR}/polyforms.me-access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
当我转到polyforms.dev
时,它会按原样打开主页,但当我去说polyforms.dev/about
时,它会告诉我这个:
如果我使用php artisan serve
并使用http://localhost:8000/about
,一切正常......问题是什么以及如何解决?
答案 0 :(得分:7)
我猜.htaccess被忽略了。 http://httpd.apache.org/docs/2.2/en/mod/core.html#allowoverride
<VirtualHost *:80>
ServerName polyforms.dev
ServerAdmin webmaster@localhost
DocumentRoot /var/www/polyforms.me/public
<Directory "/var/www/polyforms.me/public">
AllowOverride all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/polyforms.me-error.log
CustomLog ${APACHE_LOG_DIR}/polyforms.me-access.log combined
</VirtualHost>
答案 1 :(得分:4)
你是否在web根目录中有一个.htaccess文件,指向index.php的所有内容?如果没有,那就是问题(参见Laravel docs关于添加内容的地方)。如果是这样,Apache可能配置为拒绝.htaccess覆盖。在这种情况下,您需要在VirtualHost配置中添加一个允许这些段的段。有关详细信息,请参阅Apache documentation。也可能是未启用mod_rewrite的情况。如果使用Ubuntu,Debian或其他基于Debian的操作系统,sudo a2enmod rewrite
后跟sudo service apache2 reload
即可。
答案 2 :(得分:0)
您的公用文件夹中有.htaccess文件。所以将其复制到cpanel的root .htaccess文件中。