2010-11-06 21 views
15

我在一個目錄中有一個.htaccess文件,但它沒有任何作用(不管我放在裏面)。爲什麼.htaccess不起作用?

我的apache2.conf文件包含

AccessFileName .htaccess 

<Directory "/var/www"> 
    AllowOverride All 
</Directory> 

它已經說過AccessFileName .htaccess,但我添加了目錄標記自己,所以我不知道這是否是正確的。

感謝您的任何意見和要求更多的信息。

我的.htaccess的內容(現在)

Options +FollowSymlinks 
RewriteEngine on 

RewriteRule .* page.php?arg=$0 
+0

嘗試在.htaccess中放入一些僞造的東西,並訪問它適用的目錄 - 如果在訪問目錄時得到500,您至少知道正在解析您的.htaccess。你把它放在哪裏? – Anon 2010-11-06 03:08:55

+0

它被放置在我正在訪問的目錄中(在這種情況下/ var/www/avesta /)。我已經在.htaccess文件中放置了很多僞造的東西。我知道它沒有被解析:) – Hubro 2010-11-06 03:24:24

回答

19

你是Debian的,根據你的標籤。默認網站,至少在Lenny的默認配置apache2中,在/ etc/apache2/sites-available/000-default中定義。該默認值在/ var/www目錄的部分中有AllowOverride None。所以,這可能會覆蓋你的apache2.conf。

當然,您需要確保網站已啓用。如果/ etc/apache2/sites-enabled/000-default存在並且是指向/ etc/apache2/sites-available/000-default的符號鏈接,那麼該站點已啓用。啓用這種網站的標準方式是,以root身份,a2ensite 000-default

最後,要意識到如果您有權訪問主配置,出於性能考慮,您應該使用主配置(或/ etc/apache2/sites-available中的站點配置)配置您的站點,而不是在.htaccess中。進一步的解釋請參閱http://httpd.apache.org/docs/2.2/howto/htaccess.html

+0

謝謝,我把'AllowOverride'全部改爲000-default。現在即使沒有任何重寫參數,我也會收到內部服務器錯誤。有任何想法嗎? (.htaccess現在只包含'Options + FollowSymlinks'和'RewriteEngine on') – Hubro 2010-11-06 03:48:31

+0

有幾個原因可能發生。如果你完全刪除.htaccess,你有同樣的錯誤嗎?另外,請注意,您需要重新加載Apache來讀取新的配置。我通常只是重新啓動:作爲root,/etc/init.d/apache2 restart。但是,使用「重新加載」而不是「重新啓動」也是可行的。 – Andrew 2010-11-06 03:51:07

+0

我確實重啓了apache,是的。它適用於一個空的.htaccess文件,但不是一旦我添加了'RewriteEnging on' – Hubro 2010-11-06 03:54:55

相關問題