本文介绍了如何排除为什么不是由阿帕奇采用我重写规则?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有与Apache httpd的作为前端运行一个Tomcat 6 Web应用程序。我使用mod_proxy和mod_proxy_ajp的转发请求到Tomcat。我的服务器运行的是Ubuntu Linux系统。现在,我试图使用mod_rewrite删除前导WWW,让自己的规范网站网址

我读过关于使用mod_rewrite一些教程,但我不能得到任何重写工作。我试图把在.htaccess文件重写规则(修改我的/ etc /阿帕奇/站点可用/默认文件来设置所有的AllowOverride之后)。我试过把重写规则在apache2.conf,httpd.conf文件,并rewrite.conf。我已经试过所有这些与重写日志功能。日志文件被创建,但Apache的写没有什么不可以。我想也许mod_proxy的在某种程度上preventing被用于重写规则,所以我尝试禁用该以及...我仍然没有得到改写,并没有到日志中。

在这一点上,我完全不知道下一个尝试的东西。我该如何去了解为什么Apache不使用我重写规则解决问题。

有关参考,在这里是我的改写指令:

 < IfModule mod_rewrite.c>    RewriteEngine叙述上
    的RewriteCond%{HTTP_HOST} ^ $ www.domain.com [NC]
    重写规则^(。*)$ http://domain.com/$1 [R = 301,L]
    RewriteLog/var/log/apache2/rewrite.log
    RewriteLogLevel 3< / IfModule>

修改:下面的反应是有助于我的具体情况,但可能不会作为有助于社区在超大因为你是如何在总体解决Apache指令答案。例如,有一种方法启用日志记录的地步,它会告诉我哪些指令以什么顺序的请求到达被应用?

编辑2 :我已经得到的东西现在的工作。我的虚拟主机都不太树立正确的,我也不太有重写正则表达式正确。下面是最终改写指令,我得工作:

 < IfModule mod_rewrite.c>
        RewriteEngine叙述在
        的RewriteCond%{HTTP_HOST} ^万维网\\。域\\ .COM [NC]
        (。*)重写规则^ $ HTTP://domain.com$1 [L,R = 301]
< / IfModule>


解决方案

试图回答你的问题:要调试Apache操作可以调整的以一个较低的水平(也许调试)。但是,即使你把调试如果禁用日志有问题的模块,你不从它那里得到任何消息。例如,默认的 [RequestLogLevel] [2] 0,例如​​,模块不写任何消息。我看你把它设置好的3但像RoBorg说其更改为 9 ,也许是太低,你的情况。

试图SOVE您的问题:尝试改变你使用逆形式重写主机的方式 - 看,如果主机名是你想要的,如果不是,将其更改为你想要的主机名。像

In their example, they change from example.com to www.example.com but you got the idea. Just adjust it for your case.

这篇关于如何排除为什么不是由阿帕奇采用我重写规则?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-23 02:51