Laravel 5.1路由无法正常工作,除非' /'

时间:2015-09-16 19:37:10

标签: php http-status-code-404 laravel-routing laravel-5.1

我在/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时,它会告诉我这个:

enter image description here

如果我使用php artisan serve并使用http://localhost:8000/about,一切正常......问题是什么以及如何解决?

3 个答案:

答案 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文件中。