【发布时间】:2013-04-03 11:52:36
【问题描述】:
我正在尝试设置一个网站。该站点在我们一直用来向客户展示站点的实时开发服务器上运行良好。这是来自现场开发的 htaccess(工作正常):
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
#RewriteCond %{HTTPS} !=on
#RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
#RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Rewrite to 'public' folder
RewriteCond %{HTTP_HOST} ^livedev.domain.com$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) public/$1 [L]
</IfModule>
AuthType Basic
AuthName "dev16"
AuthUserFile "/home/site/.htpasswds/public_html/passwd"
require valid-user
这是来自现场网站的 .htaccess:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
#RewriteCond %{HTTPS} !=on
#RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
#RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Rewrite to 'public' folder
RewriteCond %{HTTP_HOST} ^livesite.co.uk$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) public/$1 [L]
</IfModule>
除了 HTTP_HOST 和删除身份验证之外,这 2 个是相同的。
它给了我一个通用的“内部服务器错误”。
我尝试删除 .htaccess 的内容,这只是让我找不到页面,所以问题肯定在于 .htaccess。
一个总.htaccess处女,我可以采取什么步骤来找到问题的原因?
谢谢
(这是 Laravel 3.2.13)
【问题讨论】:
-
Options +FollowSymlinks需要将AllowOverride设置为Options或更高权限。删除该行,然后告诉我们发生了什么。 -
当我删除该行时,我只得到一个 404
-
这样更好。比之前少了96!!检查 apache 错误日志并查看映射了哪个文件。
-
注释掉 SymLinks 行后,我在错误日志中得到“Options 指令禁止的目录索引:”
-
你那里没有
index.php吗?
标签: apache .htaccess mod-rewrite laravel