我已将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了解不多,但我从某人的回答中复制了一下。请帮忙
答案 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>