2010-09-25 123 views
3

我剛剛安裝了Drupal 6.19的全新副本,以加速如何編寫模塊。但由於某些原因,重寫模塊不適用於Drupal。Clean URL無效,安裝了mod_rewrite模塊

我已經檢查:

  • $ apachectl -M >>它安裝
  • php_info()當前服務器>> ON 說重寫也安裝
  • 我也double-checked.htaccess文件我的Drupal根文件夾
  • 更新:檢查httpd.conf中的AllowOverride All

我在這裏走了選項。無處不在,但Drupal設置不讓我啓用設置,他們的測試只是訪問一個應該在重寫模塊存在的情況下工作的站點。

我的規格: 的Mac OS X 10.6 Snow Leopard的 使用內置Apache與PHP5

謝謝!

+0

如果你還沒有試過,你需要從drupal管理面板啓用Clean urls。即。管理 - >清理網址。 – noobcode 2010-09-25 06:52:55

+0

這是我不能做的。 – JeroenEijkhof 2010-09-25 06:57:28

回答

3

兩件事來檢查:

  1. 確認您的.htaccess是可讀你的Apache進程(是的,我讀了你雙重檢查,但這樣做的CLUDE文件的權限)
  2. Enable rewrite logging - 這可能給你在哪裏失敗的提示。從5的log level開始並根據需要增加/減少。 (不要忘記稍後關閉它,因爲它是一個巨大的性能豬;)

另外,我會盡量簡化測試場景 - 在vhost配置中開始一個簡單的rewrite指令。一旦有效,將其移至一個。htaccess在vhosts文檔根目錄的頂層,然後到子目錄(如果需要/使用)。

+0

謝謝你,更改文件權限的原因是有效的。開始的時候是:644('-rw-r -r - @')我使用命令'chmod 777'改變了它('-rwxrwxrwx @')。然後,我恢復了Apache,它工作:)奇怪的是,當我把它變回644它仍然工作。任何想法爲什麼? – JeroenEijkhof 2010-10-18 21:34:25

+0

@WmasterJ:這確實很奇怪,我不知道爲什麼。除非使用權限設置(我懷疑這是一個非常奇怪的故障),最明顯的原因是你改變了一些修正你的問題的其他東西,但只需要重啓apache即可生效!? – 2010-10-19 20:15:31

+0

可能是這種情況:< – JeroenEijkhof 2010-10-20 01:52:33

7

最後但並非最不重要的,你必須授權您的虛擬主機或目錄使用.htaccess

AllowOverride All 

更新:

我無法弄清楚您的具體問題,但它總是值得測試Apache是​​否實際上解析您的.htaccess文件。故意發出語法錯誤,看看是否收到500 Internal Server Error消息。此外,使用不涉及Drupal的簡單重定向規則測試mod_rewrite

+0

是的,這是你沒有提到的大事情。這一行需要到你的httpd.conf文件的某個地方。 – 2010-09-25 14:49:25

+0

+1,因爲它肯定會幫助某人。出於某種原因,我仍然無法解決它。我在httpd.conf文件中進行了更改(我知道我正在編輯正確的文件),然後重新啓動了apache服務器。它沒有幫助:( – JeroenEijkhof 2010-09-27 01:18:04

1

如果你運行像一個子文件夾Drupal安裝:在你的.htaccess文件example.com/drupal,然後啓用「RewriteBase /」,它可以幫助你。

+0

試過這個,它似乎沒有幫助。 – JeroenEijkhof 2010-09-27 06:28:59

+0

你解決了這個問題嗎?有可能,apache不讀取.htaccess文件。嘗試在.htaccess中插入一些僞文本的內容。嘗試加載你的頁面,如果你在屏幕上出現錯誤,那麼它與apache/php配置有關的其他問題,但如果你沒有錯誤,那麼它是apache配置(網站啓用)的問題 – Zydrunas 2010-10-04 06:14:29

0

尋找這一行中的httpd.conf文件

#LoadModule rewrite_module modules/mod_rewrite.so 

如果評論 就取消它重新啓動Apache服務器,然後嘗試在Drupal轄清潔URL部分使

+0

謝謝。但是如果你閱讀我的問題,你會看到我檢查了'apachectl -M'(顯示所有活動模塊)以及php_info(),它也顯示了當前活動的模塊。 – JeroenEijkhof 2010-09-29 19:42:37

0

我將以下內容添加到我的.htaccess文件中,並且已解決。我的問題是專門與Rackspace公司/ CentOS的圖像

選項-MultiViews hapening

2

確保如果安裝在一個子目錄,該用戶名的rewriteBase

# Modify the RewriteBase if you are using Drupal in a subdirectory or in a 
# VirtualDocumentRoot and the rewrite rules are not working properly. 
# For example if your site is at http://example.com/drupal uncomment and 
# modify the following line: 
RewriteBase /~username/drupal** 
0

由於阿爾瓦羅部分G. Vicario提到,首先要做的事情是在.htaccess文件的頂部添加類似ghfdiddfdjf這應該會引發內部錯誤。如果沒有,則知道.htaccess文件未被讀取。我沒有,我發現以下修復:

etc/apache2/sites-enabled文件夾中,有一個名爲default-000的文件。正是在這個文件中,我更改了AllowOverride All 位置的文件。

1

一個乾淨的URL可以是像www.example.com/fisherman而不是www.example.com/data/pages/fisherman.php

一些Apache安裝有乾淨的URL的功能開箱即用。有2個步驟需要正確配置才能工作。

Enable rewrite module 
Allow .htaccess file overrides 

這兩個步驟都需要SSH根權限訪問您的服務器。所以如果你在共享主機上,這可能不適合你。打開你的終端:

  1. 啓用重寫模塊

要啓用重寫模塊,您可以鍵入以下命令

sudo a2enmod rewrite 

現在鍵入

sudo service apache2 restart 

啓用變化。您可以通過輸入來檢查它是否正常工作

sudo apache2ctl –M 

將出現一個列表。尋找「rewrite_module」。

http://codeontrack.com/enable-clean-urls-apache/