【问题标题】:Laravel 5.6 '/' route found but other routes not found AWS EC2Laravel 5.6 '/' 找到路由但未找到其他路由 AWS EC2
【发布时间】:2019-07-18 21:22:00
【问题描述】:

我是 laravel 和 AWS 的新手。我正在尝试在 AWS EC2 apache 服务器上运行我的应用程序。我的应用程序在本地系统中运行良好,但是一旦我尝试在 AWS 上上传代码,只有索引路由(即“/”)运行良好。对于其他路线,它给了我 NOT FOUND 错误。如果我尝试运行 application /index.php/login 它正在加载一个页面,但 js 和 css 不可用。

000-default.conf 文件中的代码

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/public

/etc/apache2/apache2.conf 文件中的代码

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

我的应用程序的根目录中没有 .httacess,我在更改后重新启动了 apache 服务器。请指导我缺少什么。

提前谢谢你。

【问题讨论】:

  • 您是否尝试将
  • 在 /etc/apache2/sites-available/000-default.conf 文件中是的
  • 将 .htaccess 从您的公用文件夹复制到根目录,然后告诉我发生了什么。它应该工作
  • 我在公用文件夹中没有 htaccess。在我的 aws 服务器中存在 htaccess /home/ubuntu/.composer/.htaccess /home/ubuntu/.composer/cache/.htaccess /var /www/html/vendor/phenx/php-font-lib/.htaccess
  • 你试过sudo a2enmod rewrite并重启apache吗?

标签: php laravel amazon-web-services routes ubuntu-16.04


【解决方案1】:

httpd 我也有同样的问题,但我通过添加.htaccess 来解决它。

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

注意在public/目录下添加.htaccess

【讨论】:

    【解决方案2】:

    看来您需要设置虚拟主机配置。使用sudo nano /etc/apache2/sites-available/000-default.conf 命令(或您使用的任何文本编辑器)打开您的默认配置文件并将默认配置替换为以下内容

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName example.com
        DocumentRoot /var/www/html/public
    
        <Directory "/var/www/html/public">
                Options +FollowSymLinks
                ReWriteEngine On
                Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    

    【讨论】:

    • 我将你的代码复制粘贴到 000-default.conf 文件中并重启 apache 但仍然无法正常工作
    • @urvisha 如果有任何有用的解释,你能检查一下你的 apache 日志吗 (/var/log/apache2/error.log)
    • Tingir 抱歉耽搁了。以下错误在 apache 错误日志 [mpm_prefork:notice] [pid 16031] AH00163: Apache/2.4.18 (Ubuntu) 已配置 -- 恢复正常操作 [core:notice] [pid 16031] AH00094: Command line: '/usr/ sbin/apache2' [mpm_prefork:notice] [pid 16031] AH00169: 捕获 SIGTERM,正在关闭
    猜你喜欢
    • 2016-02-27
    • 2018-12-27
    • 2019-07-13
    • 2019-02-08
    • 2017-08-09
    • 2016-11-15
    • 1970-01-01
    • 2019-02-20
    相关资源
    最近更新 更多