2010-06-13 87 views
0

我在/var/www目錄中創建了一個文件.htaccess。權限是「root root --wxrwxrwxr」。Apache和Rewrite模塊

文件的內容是:

Options +FollowSymlinks 
RewriteEngine on 
RewriteLogLevel 3 
RewriteLog "/var/log/apache2/rewrite.log" 
RewriteRule ^(.*?)$ testphp.php 

當我調用頁面phpinfo.php的,我有:加載模塊... ...的mod_rewrite因此 ,該模塊被加載。

每次修改後,我用sudo /etc/init.d/apache2 restart手動恢復服務器。

的error.log中給出

阿帕奇/ 2.2.14(Ubuntu的)PHP/5.3.2-1ubuntu4.2用了Suhosin貼片配置 - 恢復正常操作

當我調用一個頁面any.htm或any.php,rewrite.log不包含任何內容,並調用真實頁面。如果我明白了,頁面anyone.php應替換爲testphp.php

我是否犯了錯誤?

感謝

回答

0

如果我是一個web服務器,我會忽略,這是世界上可寫的,穩定和安全的緣故任何配置文件。我知道在Apache中有這樣的地方,我忘了.htaccess處理是否是這些地方之一,但我會假設/希望是。

+0

感謝您的回答 我將文件權限更改爲644,目錄更改爲755. 我重新啓動Apache服務器,並得到完全相同的結果。 – 2010-06-13 16:49:24

+0

如果您可以負擔得起,請添加一行垃圾。htaccess一分鐘,並確保它導致服務器錯誤。它不會取下服務器;它只會打破對該目錄及其內容的訪問。但這是我知道的最快捷的方式(通過配置文件的根源很短),以確保您的.htaccess文件實際上已被使用。 – cHao 2010-06-13 18:16:46

0

感謝您的幫助

這裏是我做了什麼讓Apache2的服務器的重寫規則運行:

  1. 我從一個新的硬盤
  2. 我激活重新安裝服務器與「須藤a2enmod重寫」的重寫
  3. 我創建的文件」的.htaccess'的規則:

    RewriteEngine On 
    RewriteRules ^(.*)$ test.php 
    

在 「的/ etc/apache2的/網站可用/默認」,我在目錄中添加/

AllowOverride all 
Order deny,allow 
Allow from all 

,並在目錄 「的/ var/www」 的,同樣的2號線。我不知道爲什麼,但規則RewriteLog n不在.htaccess中。在「/ var/www」中,我創建了2個文件,index.html(默認)和test.php。該test.php的包含

<?php phpinfo(); ?> 

當我調用頁面的index.html,php的信息顯示

一次,謝謝。