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

  • 相关阅读:
    HDU1720 A+B Coming
    HDU1390 ZOJ1383 Binary Numbers
    HDU1390 ZOJ1383 Binary Numbers
    HDU2504 又见GCD
    HDU2504 又见GCD
    HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking
    HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking
    HDU1020 ZOJ2478 Encoding
    HDU1020 ZOJ2478 Encoding
    HDU2097 Sky数
  • 原文地址:https://www.cnblogs.com/zqifa/p/linux-apache-1.html
Copyright © 2011-2022 走看看