我有一个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]