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

4

我在/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个回答

9
我猜测 .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>

5

您的网站根目录中是否有一个.htaccess文件,将所有内容都指向index.php?如果没有,那就是问题所在(请参阅Laravel文档,了解在哪里添加)。如果有,可能是Apache配置了拒绝.htaccess覆盖。在这种情况下,您需要在VirtualHost配置中添加一个AllowOverride All段。有关更多信息,请参见Apache文档。也有可能未启用mod_rewrite。如果使用Ubuntu、Debian或其他基于Debian的操作系统,则可以使用sudo a2enmod rewrite,然后再使用sudo service apache2 reload命令。


0

您的公共文件夹中有一个 .htaccess 文件。因此,请将其复制到 cpanel 的根 .htaccess 文件中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接