zoukankan      html  css  js  c++  java
  • debian下为apache启用rewrite模块

    如果我们是自己编译的apache,那么启用或禁用某个模块应该说是比较容易的事,只要修改apache的配置文件就可以了。但是我们没有理由不用已经做好的二进制文件进行安装,使用apt-get要方便多了。

    但是这样的安装,apache默认会启用一部分模块,一般情况下,它已经满足了大部分的需求。但是我们的需求肯定是不能确定的如我们可能要利用apache实现重定向的功能,我们可能需要alias,rewrite模块。

    实际上在apache下有两种类型的模块,一种是事先编译到apache中的,另一种是在你运行apache时载入的模块你可以使用下列命令来检查你的apache已经编译了哪些模块:

    #apache2 -l

    事实上,在apache2的安装目录下,有这样的两个目录:

    /etc/apache2/mods-enabled/ 已经被启用的模块
    /etc/apache2/mods-available/ 当前系统中可用的模块

    这是在apache配置文件中一个片断,很明显它是用来载入各个被启用的模块及其配置文件,也就是位于/etc/apache2/mods-enabled/下的所有以.load 和.conf结尾的文件。

    # Include module configuration:
    Include /etc/apache2/mods-enabled/*.load
    Include /etc/apache2/mods-enabled/*.conf

    当然最后不要忘了重启apache:apache2 force-reload
    你可以使用下列命令来启用或禁用模块:
    a2enmod 模块名
    a2dismod 模块名
    其实它的动作就是在/etc/apache2/mods-enabled/目录创建或删除一个模块对应的链接文件。当然你也可以手工做这个动作了。
    测试你的服务器是否支持rewrite功能,将下面的代码保存为.htaccess文件,上传到网站任一目录下.

    Options -Indexes
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteRule .*$ http://www.sohu.com
    </IfModule>

    如果可以打开的的网站..就说明你的rewrite模块已经正常工作啦…
    但如果不能打开该网站,那么可能存在下列问题。

    #debian
    a2enmod rewrite
    #ubuntu
    sudo a2enmod rewrite
    指令后,即启用了 Mod_rewrite 模块。

    另外,也可以通过将 /etc/apache2/mods-available/rewrite.load 连接到 /etc/apache2/mods-enabled/rewrite.load 来打开 Mod_rewrite 模块。用指令操作就是:

    #debian
    ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
    #ubuntu
    sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
    一点小提示

    事实上,当在Debian or Ubuntu 中采用上述做法并重启了 Apache 服务后,仍然无法正常 rewrite 网址。这里,还有一点需要注意的地方:

    sudo vim /etc/apache2/sites-enabled/000-default
    sudo vim /etc/apache2/apache2.conf

    将其中的:

    AllowOverride None

    修改为:

    AllowOverride All

    上面的 /etc/apache2/sites-enabled/000-default 实则为 /etc/apache2/sites-available/default 的连接。而 AllowwOverride None 则会完全忽略 .htaccess 文件,自然其中所定义的 rewrite 规则也就不能生效了。

    最后,别忘了使用下列指令来重启 Apache:

    #debian
    /etc/init.d/apache2 restart
    #ubuntu
    sudo /etc/init.d/apache2 restart

  • 相关阅读:
    给最小化托盘增加右键菜单
    (转)c#实现开机自启动
    Socket代码
    (转)C# Socket简单例子(服务器与客户端通信)
    (转)C# Socket异步通信
    (转)winform pictureBox后台显示图片
    验证DataGridView单元格的值
    批处理判断是否有.net环境
    Winform判断是否已启动
    linux 下 apache启动、停止、重启命令
  • 原文地址:https://www.cnblogs.com/zqifa/p/linux-apache-1.html
Copyright © 2011-2022 走看看