在这台服务器上找不到请求的URL

我有一个Ubuntu 14.04内核。 我在这台服务器上安装了我的Laravel应用程序。 安装后,我试图将根目录设置为公共。

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, eg #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/它显示主页和运作良好。 它也获得所有的GETvariables。 例如: 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在localhost上运行良好。 但不是在这个服务器上。 请帮帮我。

这看起来像你必须启用.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 

点击这里回答这些问题

在httpd.conf文件中,你需要删除#

 #Loadmodulee rewrite_module modules/mod_rewrite.so 

删除#行后看起来像这样:

 Loadmodulee rewrite_module modules/mod_rewrite.so 

和Apache重新启动

太晚了..但为了好处,你可以编辑你的.htaccess文件注释这一行

  # RewriteRule ^ index.php [L]