2009-11-27 46 views
0

我有一個.htaccess文件作爲測試如下:mod_rewrite的工作在.htaccess文件而不是在apache2.conf

RewriteEngine on 
RewriteRule ^(.*)$ /backend/$1

可正常工作。我能夠在apache2.conf中使用以下方法進行重寫日誌記錄:

<IfModule mod_proxy.c> 
    RewriteLog "/tmp/REWRITE.log" 
    RewriteLogLevel 9 
</IfModule>

日誌文件已創建並按預期方式記錄調試信息。但是,當我刪除.htaccess文件時,請按如下所示更改apache2.conf指令,然後重新啓動apache以在全局範圍內執行相同操作,但不起作用。

<IfModule mod_proxy.c> 
    RewriteLog "/tmp/REWRITE.log" 
    RewriteLogLevel 9 
    RewriteEngine on 
    RewriteRule ^(.*)$ /backend/$1 
</IfModule>

我在Ubuntu上使用Apache/2.0.55。

幫助!

+0

不是*之外的任何進一步的診斷這是行不通的*? – Gumbo 2009-11-29 20:01:24

回答

0

你試過嗎?

RewriteEngine on 
    RewriteRule ^(.*)$ /backend/$1 

<IfModule mod_proxy.c> 
    RewriteLog "/tmp/REWRITE.log" 
    RewriteLogLevel 9 

</IfModule> 

因爲這樣,我能夠做的重寫,但登錄didnt因此工作了問題mod_proxy.c

0

你有沒有考慮過在之前的之前的任何其他重寫指令轉向RewriteEngine?

+0

好主意,我沒有考慮它。然而,我把'RewriteEngine on'移到了'RewriteLog'/tmp/REWRITE.log'之前,然後重新啓動了apache,結果仍然是一樣的:( – Lightbeard 2009-11-27 17:31:00

0

您的RewriteRule指令是否包含在特定的服務器定義中?你有虛擬服務器嗎?

我問這個問題的原因是,你說這適用於目錄特定的.htaccess文件;雖然官方文檔說RewriteRule可以應用於服務器配置,虛擬主機,目錄,.htaccess。

+0

感謝您的幫助,它是一個虛擬服務器,它是一個每月支付的VPS(Xen)。當我把它放在'/ var/www/public/ /。htaccess'中時,RewriteRule的工作方式如第一個例子所示,它不起作用當我把它放在'/ etc/apache2/apache2.conf'中時(即使我先打開了RewriteEngine),目標不是使用.htaccess文件 - 我想定義一些RewriteRules全球範圍內 – Lightbeard 2009-11-27 22:26:07

+0

對不起,我不能提供更多的幫助,有很多這些東西都是反覆試驗的,很可能RewriteRule並不是很容易在全球範圍內應用,但是如果你把它放在您的頂級目錄的塊是否可能適用於所有子目錄.. – 2009-11-28 01:05:33

相關問題