laravel 在此服务器上找不到请求的 url
laravel the requested url was not found on this server
我有一个 Ubuntu 14.04 内核。我在这台服务器上安装了我的 Laravel 应用程序。
安装后,我尝试将根目录设置为public。
sudo nano /etc/apache2/sites-available/000-default.conf
我在文件中只有这些选项
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port t$
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/public/
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
我已将文档根目录更改为
DocumentRoot /var/www/html/public/
现在,当我尝试访问我的 Laravel 应用程序时,通过 123.xxx.xxx.xxx/
它显示主页并且运行良好。它也获取所有 GET 变量。例如:123.xxx.xxx.xxx?type=wefwef
但是当我转到其他链接时,例如 123.xxx.xxx.xxx/login
,它给我一个错误
Not Found
The requested URL /login/ was not found on this server.
Apache/2.4.7 (Ubuntu) Server at 104.236.234.85 Port 80
我的 routes.php 在本地主机上运行良好。但不是在这个服务器上。请帮我。
看来您必须通过将此添加到虚拟主机来启用 .htaccess
:
<Directory /var/www/html/public/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
如果这不起作用,请确保您已启用 mod_rewrite。
修改后别忘了重启apache! (service apache2 restart
)
首先启用a2enmod rewrite
接下来重启apache
/etc/init.d/apache2 restart
click here for answer these question
在 httpd.conf 文件中,您需要删除 #
#LoadModule rewrite_module modules/mod_rewrite.so
删除 # 行后将如下所示:
LoadModule rewrite_module modules/mod_rewrite.so
并且 Apache 重启
太晚了..但为了利益
你可以编辑你的 .htaccess 文件
评论这一行
# RewriteRule ^ index.php [L]
确保您已启用 mod_rewrite。
restart apache
并清除浏览器的 cookies,以便在 .htaccess
再次阅读
我通过执行以下操作解决了问题:
检查您的 apache 中是否有名为 rewrite.load 的模块:
cd /etc/apache2/mods-enabled/
如果不存在,执行以下摘录:
sudo a2enmod rewrite
否则,更改Apache配置文件以统一使用"friendly URL"。
sudo nano /etc/apache2/apache2.conf
在编辑器中找到如下代码:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
更改为:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
之后通过以下方式重启 Apache 服务器:
sudo /etc/init.d/apache2 restart
除了所有答案之外,如果您仍然遇到问题的某些变体,请编辑 .env
文件并将 APP_URL
设置为您的域名,如下所示:
APP_URL=similar_to_my_avatar_link
或者,您可以替换 .htaccess 文件中的所有内容
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
在此处查看文档。
https://laravel.com/docs/5.8/installation#web-server-configuration
对于 ubunutu 18.04 在一个 vagrant box 中......这就是帮助我的东西
确保 www-data 具有访问 .htaccess 文件的权限
sudo chown www-data.www-data .htaccess
编辑 apache2 conf 以允许符号链接等
sudo nano /etc/apache2/apache2.conf
将此添加到文件
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
重启你的 apache2 服务器
sudo service apache2 restart
我希望这对某人有所帮助。
我在 cPanel
中遇到了同样的问题,我解决了我的问题,将 .htaccess
文件添加到这些行下方
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
将以下内容添加到 public 文件夹中的 .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]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我有一个 Ubuntu 14.04 内核。我在这台服务器上安装了我的 Laravel 应用程序。 安装后,我尝试将根目录设置为public。
sudo nano /etc/apache2/sites-available/000-default.conf
我在文件中只有这些选项
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port t$
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/public/
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
我已将文档根目录更改为
DocumentRoot /var/www/html/public/
现在,当我尝试访问我的 Laravel 应用程序时,通过 123.xxx.xxx.xxx/
它显示主页并且运行良好。它也获取所有 GET 变量。例如:123.xxx.xxx.xxx?type=wefwef
但是当我转到其他链接时,例如 123.xxx.xxx.xxx/login
,它给我一个错误
Not Found
The requested URL /login/ was not found on this server.
Apache/2.4.7 (Ubuntu) Server at 104.236.234.85 Port 80
我的 routes.php 在本地主机上运行良好。但不是在这个服务器上。请帮我。
看来您必须通过将此添加到虚拟主机来启用 .htaccess
:
<Directory /var/www/html/public/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
如果这不起作用,请确保您已启用 mod_rewrite。
修改后别忘了重启apache! (service apache2 restart
)
首先启用a2enmod rewrite
接下来重启apache
/etc/init.d/apache2 restart
click here for answer these question
在 httpd.conf 文件中,您需要删除 #
#LoadModule rewrite_module modules/mod_rewrite.so
删除 # 行后将如下所示:
LoadModule rewrite_module modules/mod_rewrite.so
并且 Apache 重启
太晚了..但为了利益 你可以编辑你的 .htaccess 文件 评论这一行
# RewriteRule ^ index.php [L]
确保您已启用 mod_rewrite。
restart apache
并清除浏览器的 cookies,以便在 .htaccess
再次阅读我通过执行以下操作解决了问题: 检查您的 apache 中是否有名为 rewrite.load 的模块:
cd /etc/apache2/mods-enabled/
如果不存在,执行以下摘录:
sudo a2enmod rewrite
否则,更改Apache配置文件以统一使用"friendly URL"。
sudo nano /etc/apache2/apache2.conf
在编辑器中找到如下代码:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
更改为:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
之后通过以下方式重启 Apache 服务器:
sudo /etc/init.d/apache2 restart
除了所有答案之外,如果您仍然遇到问题的某些变体,请编辑 .env
文件并将 APP_URL
设置为您的域名,如下所示:
APP_URL=similar_to_my_avatar_link
或者,您可以替换 .htaccess 文件中的所有内容
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
在此处查看文档。 https://laravel.com/docs/5.8/installation#web-server-configuration
对于 ubunutu 18.04 在一个 vagrant box 中......这就是帮助我的东西
确保 www-data 具有访问 .htaccess 文件的权限
sudo chown www-data.www-data .htaccess
编辑 apache2 conf 以允许符号链接等
sudo nano /etc/apache2/apache2.conf
将此添加到文件
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
重启你的 apache2 服务器
sudo service apache2 restart
我希望这对某人有所帮助。
我在 cPanel
中遇到了同样的问题,我解决了我的问题,将 .htaccess
文件添加到这些行下方
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
将以下内容添加到 public 文件夹中的 .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]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>