2012-10-16 41 views
0

我做了一個簡單的.htaccess文件來暴露這個問題。當指向一個php文件時獲取錯誤500.htaccess(mod_rewrite)

我想是到該文件夾​​的所有請求重定向到一個子文件夾中的文件「應用/的index.php」

RewriteEngine On 

RewriteRule (.*) app/index.php [QSA] 

這正常工作與我的主機供應商的基本URL(如http//myname.hosting.com/htaccessFolder

的問題是,我有指向此文件夾上域,當訪問到它,服務器返回Internal Server Error 500

如果我這樣做:

RewriteEngine On 

RewriteRule (.*) somefile.php [QSA] 

重定向僅在文件不存在時才起作用(404未找到錯誤發生)。當文件存在時,我也得到了500錯誤。

我問過沒有成功的那一刻託管支持..

編輯:

奇怪的是,當我寫:

RewriteEngine On 

RewriteRule (.*) somefile.txt [QSA] 

它適用於機器人,因此它似乎問題來自執行php文件..

EDIT2:

這裏是真正的.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(這是在公共/ CSS)它按預期工作。 當我不評論最後一個塊時,我得到一個500錯誤。

+0

'error.log'文件呢? –

+0

我已經問過它的支持,不知道我在哪裏可以得到它 – Leto

+0

通常它是你的www根目錄附近的somwhere。尋找'log'或'logs'文件夾。 –

回答

0

嘗試在你的htaccess文件中加入:

Options -Multiviews 

它關閉協商的內容可與網址如何映射到文件中包含PHP擴展有時螺絲。

+0

不,不起作用:( – Leto

1

好吧,我找到了解決辦法,以避免重定向:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    ##################### 

    RewriteCond %{QUERY_STRING} stop 
    RewriteRule (.*) - [L] 

    ##################### 

    RewriteCond %{REQUEST_URI} question2answers/(.*) 
    RewriteRule (.*) $1?htaccess=stop [L,QSA] 

    ##################### 

    RewriteRule (.*) app/public/$1 

    RewriteCond %{REQUEST_FILENAME} -f 
    RewriteRule (.*) $1?htaccess=stop [L] 

    RewriteRule app/public/(.*) $1 


    ##################### 


    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule (.*) index.php?htaccess=stop [L,QSA] 

</IfModule> 

我一直不明白,但它的工作原理。