laravel 5.1只路由到主页,所有其他路由都是404未找到错误,在将本地工作站点托管到服务器之后

时间:2016-05-25 13:22:56

标签: laravel-5.1 laravel-routing

我已将laravel 5.1应用程序推送到服务器。在localhost中,它可以正常工作。但在服务器中,只有主页即将到来,没有其他路由正常工作。我发现404找不到错误。 jQuery-2.1.4.min.js:4 POST http://mydomainurl/login/validate_login 404。我觉得,它应该遍历http://mydomainurl/applicationName/login/validate_login。我不知道发生了什么以及我必须更新的地方。 我在apache中启用了模式重写,应用程序的public /目录的.htaccess如下所示

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

RewriteEngine On

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

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]   RewriteCond     %{REQUEST_URI} !^  RewriteRule ^(.*)$ /$1 [L]  </IfModule>

我对.htaccess了解不多,但我从某人的回答中复制了一下。请帮忙

2 个答案:

答案 0 :(得分:0)

完成上述所有修改后,在网上冲浪,它没有用。最后,我明白这可能是因为url问题,只是更改了ajax中的url,如url: "<?php echo url();?>/login/validate_login",它开始工作惊人。仅在本地主持人中,url: "login/validate_login",有效。 总而言之,要做的事情是: 1:将公用文件夹内容移动到服务器的根文件夹(将其命名为任何内容,例如:var / www / html / my_public)。更新它的.htaccess和index.php,如其他答案中所述。如果仍然没有工作,修改server.php,bootstrap / app.php。使用url()与调用。我实现了这么多: - )

答案 1 :(得分:0)

问题可能是由您的virtualhost配置文件引起的。它应该有&#34; AllowOverride All&#34;指令^

<VirtualHost *:80>
    ServerAdmin youremail@yahoo.com
    ServerName yoursite.com
    ServerAlias www.yoursite.com
    DocumentRoot "/var/www/yoursite.com/public"
    <Directory /var/www/yoursite.com/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>