【问题标题】:Laravel 5.1 routing not working except '/'Laravel 5.1 路由除了 '/' 不起作用
【发布时间】:2015-12-13 13:13:08
【问题描述】:

我在/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 一切正常...问题是什么以及如何解决?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您在 Web 根目录中是否有一个 .htaccess 文件将所有内容都指向 index.php?如果没有,那就是问题所在(请参阅Laravel docs,了解在何处添加内容)。如果是这样,Apache 可能被配置为拒绝 .htaccess 覆盖。在这种情况下,您需要在 VirtualHost 配置中添加一个允许这些的段。请参阅Apache documentation 了解更多信息。也可能是未启用 mod_rewrite 的情况。如果使用 Ubuntu、Debian 或其他基于 Debian 的操作系统,则使用 sudo a2enmod rewrite 后跟 sudo service apache2 reload 就足够了。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2016-04-20
          • 2014-03-25
          • 2015-04-25
          • 2016-10-20
          • 2015-10-27
          • 2020-12-04
          • 2016-11-05
          • 2015-01-26
          • 2015-03-13
          相关资源
          最近更新 更多