>백엔드 개발 >PHP 튜토리얼 >laravel5.2를 새 서버에 이식하면 '/' 경로를 제외하고 다른 경로에 해당하는 페이지에 404 오류가 표시됩니다(Object not Found!)

laravel5.2를 새 서버에 이식하면 '/' 경로를 제외하고 다른 경로에 해당하는 페이지에 404 오류가 표시됩니다(Object not Found!)

WBOY
WBOY원래의
2016-08-04 09:21:231245검색

1.服务器系统:linux系统
2.Web环境:lamp(Linux+Apache+Mysql+PHP)[使用的Linux版本的xampp软件集成包]
(1).不是storage和Bootstrap/cache文件夹权限问题。
(2).用laravel5.2做的项目在window系统本地端(wamp)测试其它页面显示可行。在Linux服务器(lnmp)环境测试其它页面也是可以显示。

回复内容:

1.服务器系统:linux系统
2.Web环境:lamp(Linux+Apache+Mysql+PHP)[使用的Linux版本的xampp软件集成包]
(1).不是storage和Bootstrap/cache文件夹权限问题。
(2).用laravel5.2做的项目在window系统本地端(wamp)测试其它页面显示可行。在Linux服务器(lnmp)环境测试其它页面也是可以显示。

1.打开 /etc/httpd/conf/httpd.conf(使用xampp: /opt/lampp/etc/httpd.conf).
2.确保DocumentRoot 指向的目录是laravel中public文件夹。如果不是需要改为如下:

<code>DocumentRoot "/var/www/html/laravel/public/"
<Directory "/var/www/html/laravel/public">
    Allowoverride All
</Directory></code>

注意:(/var/www/html 是存放laravel目录。 一般linux默认是/var/www/html目录下,Xampp的是在/opt/lampp/htdocs/目录下。 使用xampp上面/var/www/html/laravel/public/ 改为/opt/lampp/htdocs/laravel/public/)

3.确定laravel public目录下.htaccess文件有下面的代码(如果没有请将下面代码添加进去):

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

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

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

4.重启Apache服务器。sudo service httpd restart (使用 Xampp的 :
先关闭:/opt/lampp/lampp stop 再重启:/opt/lampp/lampp start
详细参考:http://stackoverflow.com/questions/21458080/the-requested-url-projectname-users-was-not-found-on-this-server-laravel/24354757#24354757

url重写。

应该是URL重写的问题

Apache

Laravel 框架通过 public/.htaccess 文件来让网址不需要 index.php。如果你的服务器是使用 Apache,请确认是否有开启 mod_rewrite 模块。
如果 Laravel 附带的 .htaccess 文件在 Apache 中无法使用的话,请尝试下方的做法:

<code>Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</code>

Nginx

若你使用了 Nginx,则可以在网站设置中增加以下设置:

<code>location / {
    try_files $uri $uri/ /index.php?$query_string;
}</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.