我在本地安装了一个新的Laravel。看起来htaccess或Apache设置有问题。我研究了几个小时,尝试了我读到的所有东西。
- OSX狮子10.7.5
- 质量管理计划3.0.5
- PHP语言5.5.10
- mod_rewrite正在加载。
我的开发服务器与其他网站一起工作。这是我第一次尝试Laravel 4。
I get a 403 Forbidden on the welcome page which is located at website.dev:8888/
Apache给我这个错误:目录索引被Options指令禁止
下面是我的. htaccess文件内容:
<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>
以下是我采取的一些额外措施:
- AllowOverride在httpd.conf中设置为"全部
- 在httpd-vhosts. conf中添加了虚拟主机代码部分
- verified that the hosts file contains a line for the site 127.0.0.1 website.dev
I've also tried various lines in the htaccess which I found in articles and I also restarted apache each time I made changes to the conf files. No routes work. When I go to website.dev:8888/public I get a blank page, no error. If I go to a route I created such as website.dev:8888/users I get a 404 not found error.
谢谢你的帮助!
8条答案
按热度按时间wkyowqbh1#
这个解决方案工作得很好,对我来说是最好的解决方案。将此代码粘贴到根目录htaccess中。就这样。保持所有其他文件不变
u91tlkcl2#
在根路径中创建一个.htaccess文件
在公共目录中创建.htaccess文件
如果你在public/index.php文件中做了任何更改,请用正确的路径进行更正,然后你的站点将是活的。
这个能解决什么问题?
js5cn81o3#
答案
以下是我发现的有效方法:删除
/public
目录中的.htaccess
文件,然后将以下内容放入laravel安装的文档根目录中。澄清
因此,如果您的laravel应用程序安装在
/public_html/laravel
,您将查看/public_html/laravel/public
并删除其中的.htaccess
文件,然后在/public_html/laravel
目录中创建一个名为.htaccess
的新文件将下面的代码复制到文档根目录下的新. htaccess文件中
请注意
正如Concordus Applications在他们的回答中提到的,确保
Loadmodule mod_rewrite
没有注解(确保在apache配置文件中它后面没有#
符号)Concordus Applications还指出,应该将
AllowOverride
设置为适当的设置。他们给出的示例如下。如果您对apache配置文件做了任何更改,请确保重新启动apache服务器。
nmpmafwu4#
公认的答案工作,但没有与拉瑞维尔护照认证。
有必要添加一些标题调整:
mrwjdhj35#
该框架附带了一个
public/.htaccess
文件,用于允许没有index.php
的URL。如果您使用Apache来服务您的Laravel应用程序,请确保启用mod_rewrite
模块。如果Laravel附带的
.htaccess
文件不适用于您的Apache安装,请尝试以下方法:5q4ezhmt6#
确保/wwwroot和/public中都有.htaccess文件,但内容不同:wwwroot/.htaccess网址:
wwwroot/公共/.htaccess:
hm2xizp97#
此.htaccess将从您的URL中删除/public/并强制使用https://
把这个.htaccess放在你的根文件夹中,不要把server.php文件重命名为index.php,这个.htaccess就可以完成所有的事情
bejyjqdl8#
简单的解决方案复制并粘贴下面的代码到您的
.htaccess