2009-04-29 22 views
3

我過去成功地設法在apache服務器上覆制/編輯/粘貼重寫規則。無法開始使用mod_rewrite

現在,我正在嘗試一個Apache服務器,我可以重新啓動並配置我的心臟的內容,但我甚至無法獲得一個基本的重寫示例來工作,那是在閱讀了至少兩篇教程之後。我玩過LogLevel和RewriteLog,但是我沒有找到真正的證據證明我正在使用我真正基本的重寫規則。我的重寫日誌文件已創建,但它是空的。我也嘗試從httpd.conf中註釋掉所有的東西,但重寫的東西。

讓我們來看看其他的信息,我可以添加:

 
chilcott:/etc/apache2/conf.d# uname -a 
Linux chilcott 2.6.26-1-486 #1 Sat Jan 10 17:46:23 UTC 2009 i686 GNU/Linux 


chilcott:/etc/apache2/conf.d# apache2ctl -V 
Server version: Apache/2.2.9 (Debian) 
Server built: Jan 20 2009 17:29:25 
Server's Module Magic Number: 20051115:15 
Server loaded: APR 1.2.12, APR-Util 1.2.12 
Compiled using: APR 1.2.12, APR-Util 1.2.12 
Architecture: 32-bit 
Server MPM:  Prefork 
    threaded:  no 
    forked:  yes (variable process count) 
Server compiled with.... 
-D APACHE_MPM_DIR="server/mpm/prefork" 
-D APR_HAS_SENDFILE 
-D APR_HAS_MMAP 
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) 
-D APR_USE_SYSVSEM_SERIALIZE 
-D APR_USE_PTHREAD_SERIALIZE 
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT 
-D APR_HAS_OTHER_CHILD 
-D AP_HAVE_RELIABLE_PIPED_LOGS 
-D DYNAMIC_MODULE_LIMIT=128 
-D HTTPD_ROOT="" 
-D SUEXEC_BIN="/usr/lib/apache2/suexec" 
-D DEFAULT_PIDLOG="/var/run/apache2.pid" 
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status" 
-D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock" 
-D DEFAULT_ERRORLOG="logs/error_log" 
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types" 
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf" 

回答

3

你有沒有在你的httpd.conf的右側部分的重寫規則?他們可能應該在虛擬主機部分。

發佈您的httpd.conf(或至少一些)可能會有所幫助。

它看起來有點像這樣:

LoadModule rewrite_module modules/mod_rewrite.so 

RewriteLogLevel 9 
RewriteLog ".....rewrite.log" 


<VirtualHost *:80> 
    DocumentRoot "..." 

    RewriteEngine On 
    RewriteRule ^/foo /bar 
</VirtualHost> 
+0

謝謝。這給了我一些有用的指針。大概遵循標準的Debian配置,我們有:

 # Include module configuration: Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf 
這當然是打算做LoadModule位,我現在已經滿意自己,該位工作。 有用的線索是在VirtualHost位。我曾嘗試將規則放在頂層文件或.htaccess中。我認爲我有太多的運動部件讓後者工作。將我的規則複製到VirtualHost部分已使其工作。 – asparagus 2009-04-29 20:14:31

1

你需要下載使用它的模塊。看看你的httpd.conf文件,查找類似下面一條線,如果有任何刪除前導註釋字符#

#LoadModule rewrite_module modules/mod_rewrite.so 

然後你只需要重新啓動Apache服務器。

+0

根據其他評論,這不是問題。 – asparagus 2009-04-29 20:15:01