2009-11-20 55 views

回答

1

第1步。在你的.htaccess文件中加入一些垃圾,看看Web服務器是否給你一個錯誤。

0

這裏要找出的一點是 - 假設服務器正在運行Apache - SS安裝程序生成的.htaccess文件是否實際上正在被讀取。如果您仍然遇到問題,請嘗試詢問SS IRC頻道。

2

即使您收到該錯誤消息,安裝程序也應該儘可能地進行設置。

這個問題有點棘手,因爲這個問題可能出現在很多不同的地方,但我試過在下面列出一個故障排除指南。

注意:下面的許多鏈接都被故意破壞,因爲Stack Overflow認爲我可能是垃圾郵件發送者。 ;-)

假設您的網站位於http:/www.example.com,請嘗試訪問http:/www.example.com/dev/build - 您應該會看到一個標題爲「Environment Builder(以前稱爲DB /編譯)」。如果可行,那麼你在重寫時就沒有問題了,安裝程序錯誤地給了你那條消息。

如果這給你一個404,試試http:/www.example.com/sapphire/main.php?url = dev/build - 這將訪問相同的功能,但繞過mod_rewrite。如果這給你的標題是「環境構建器(以前的數據庫/構建)」和以前的網址沒有,那麼你有一個mod_rewrite問題,而不是其他問題。

  1. 檢查.htaccess文件的內容。它應該看起來像this,但可能有RewriteBase行。
  2. 嘗試放入一些垃圾文本 - 例如'asdfsahjadsfasdf' - 進入.htaccess文件並保存。打開您的網站。它會給你一個500錯誤嗎?如果沒有,那麼你的AllowOverride All設置不起作用。檢查你是否把它放在正確的地方。記住 - 它需要在你的Apache配置文件中,而不是.htaccess。如果你無法訪問相關的配置文件,你可能需要詢問你的ISP來幫助你回答這個問題。
  3. 如果沒有發現問題,我們將不得不修改重寫規則,看看我們是否可以探索正在發生的事情。嘗試改變這一行:

    RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L] 
    

    爲此(它會變成重寫規則到重定向規則):

    RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L,R] 
    

    訪問http:/www.example.com/dev/build再次做到了重定向地方?如果沒有,那麼mod_rewrite不起作用。它應該重定向到http:/www.example.com/sapphire/main.php?url = dev/build。它是否重定向到別的地方?例如,是否有額外的垃圾被插入?url=參數?如果您在子目錄中運行SilverStripe,有時會發生這種情況。在這種情況下,請檢查RewriteBase設置是否設置了該子目錄。類似於RewriteBase /mysubdir

如果你仍然無法獲得友好的URL,那麼恭喜你 - 你發現了一個非常討厭的邊緣情況!將以上步驟發現的細節發佈到www.silverstripe.org上的SilverStripe IRC頻道或論壇。