2009-04-29 27 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