2011-12-28 65 views
1

我想在godaddy webhosting(apache-linux ofcourse,不是IIS)上设置一个.htacess文件。但是,我真的坚持了一个问题:godaddy .htaccess重写规则

RewriteEngine On 
Options +FollowSymLinks 
Rewriterule ^templates/.*$ - [PT] 
Rewriterule ^controllers/.*$ - [PT] 
Rewriterule ^.*$ index.php [NC,L] 

我真的得到一个内部服务器错误线路:

重写规则^ * $的index.php [NC,L]

我不知道如何解决这个问题,我试过了我所知道的一切......基本上我想发送index.php中引导程序设置的任何东西。这是在任何托管我工作过,但曾尝试,但godaddy似乎有这个问题:^。* $任何帮助,将不胜感激。

回答

0

此规则

重写规则^ * $的index.php [NC,L]

看起来不错,但要确保有标志 即[NC, L]应之间没有空格更改为[NC,L]

你可以尝试等同于看它是否有差别(你不需要NC因为它已经匹配的任何请求)

Rewriterule .* index.php [L] 

如果这不是问题,那么很可能之前的规则导致它失败。评论他们两个,看看是否可行,但增加的RewriteCond如下

Options +FollowSymLinks 
RewriteEngine On 

#if its not already index.php 
RewriteCond %{REQUEST_URI} !index\.php$ [NC] 
Rewriterule .* index.php [L] 

如果这些规则的真正原因,那么我想知道什么是与这些规则你的意图,他们可以表达一种不同的方式,即如果意图是重写除模板或控制器目录以外的所有内容,则可以通过以下方式实现:

#if request is not for templates or controllers directory 
RewriteCond %{REQUEST_URI} !^/(templates|controllers)/ [NC] 
Rewriterule .* index.php [L]