2011-07-06 68 views
2

我有我的服務器上的mod_rewrite設置爲像下面Apache的mod_rewrite的突然停止工作

http://www.example.com/1 

的URL改寫爲

http://www.example.com/index.php?show=1 

爲了單詞的URL shortern。當系統在我的開發站點的子域下運行時,一切正常,但現在它只是產生一個Not Found錯誤,但如果我手動輸入url /index.php?show=1它工作正常。

所以,唯一的變化就是網址,

http://www.site.example.com

切換到

http://www.site.com

但它仍然是相同的服務器和相同的子文件夾在運行裏面public_html服務器只是新的域名已被指向該文件夾。

它保存在該文件夾是/public_html/paste

在目錄中運行完整的.htaccess文件是

# Set Default File 
DirectoryIndex index.php 

# Turn ReWrite Engine On 
RewriteEngine on 

# Create Rule To Write URLs To Shorter Versions 
RewriteRule /([a-z0-9]+) /index.php?show=$1 

我不能啓用RewriteLog作爲託管不允許這樣做的某些原因。

+0

你確定你的主機有mod_rewrite的,並允許htaccess的壓倒一切的? –

+0

當然,正如我所說的,當通過子域訪問時它工作的很完美,但是隻有當我用它自己的域進行設置時才失敗。它仍然運行在同一臺服務器上,帳戶和相同的主機上。另外,我還有另一個在該服務器上運行的站點,它完美地使用了mod_write。 – jskrwyk

回答

2

這聽起來像AllowOverride指令沒有正確設置該文件夾。在您的Apache的配置,你應該確保您使用的是主域目錄或虛擬主機有AllowOverride設置爲All

http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride

+0

試過這個解決方案和上面的一個,但似乎都沒有幫助。根據我的主機mod_rewrite工作得很好,它必須是與網站配置的問題,但我已經淘汰了我的配置,並沒有任何錯誤。只是想嘗試從同一個目錄做一些簡單的其他重寫,看看它是一個mod_rewrite問題或與網站的配置問題 – jskrwyk