我制作了一个简单的 .htaccess 文件来暴露问题。
我希望对文件夹的所有请求都重定向到子文件夹文件“app/index.php”
RewriteEngine On
RewriteRule (.*) app/index.php [QSA]
这适用于我的主机的基本网址(比如http//myname.hosting.com/htaccessFolder
问题是我有一个指向此文件夹的域,当访问它时,服务器返回Internal Server Error 500
.
如果我这样做:
RewriteEngine On
RewriteRule (.*) somefile.php [QSA]
重定向仅在文件不存在时有效(发生 404 未找到错误)。当文件存在时,我也会收到 500 错误。
我暂时要求托管支持但没有成功..
编辑 :
奇怪的是,当我写:
RewriteEngine On
RewriteRule (.*) somefile.txt [QSA]
它适用于机器人,所以问题似乎来自执行 php 文件..
编辑2:
这是我尝试使用的真实 .htaccess 文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#RewriteCond %{REQUEST_FILENAME} -f
#RewriteRule .? - [L]
#####################
RewriteRule (.*) app/public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule app/public/(.*) $1
#####################
#RewriteCond %{REQUEST_FILENAME} question2answers/(.+)
#RewriteRule .? - [L]
#####################
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule (.*) index.php [L,QSA]
</IfModule>
你可以看到只有公共块没有被评论但是当我去网站时我得到这个:请求的 URL /cgi-bin/php5.fcgi/index.php/index.php/index.php/index.php/ index.php/index.php/index.php/in.....
但我请求公共文件夹中的文件(如http://website.com/css/style.css(在 public/css 中)它按预期工作。当我不评论最后一个块时,我得到一个500 错误。