linux下apache开启url重写的方法(详细说明)

 更新时间:2012年04月17日 22:41:45   作者:  
Apache 2.x 中URL重写,是通过mod_rewrite.so 来实现的,所以您要查看您的Apache 是否已经被编译进去这个模块了,并且在Apache的配置文件httpd.conf 中已经调用了这个模块
Linux开启url重写的方法:

1、打开 apache 里httpd.conf(通常是在/etc/httpd/conf目录里)

2、找到 #LoadModule rewrite_module modules/mod_rewrite.so 去掉前面的#

3、找到 AllowOverride None 改成 AllowOverride All , 有两个全部改掉

注:AllowOverride 的参数设置为ALL,表示整台服务器上都支持URL规则重写。Apache 服务器要读每个网站下目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于URL重写的规则就不会有任何效果。

重启apache (用命令:service httpd restart)。

Apache开启URL重写功能方法详细篇

1、关于rewrite模块的调用:
Apache 2.x 中URL重写,是通过mod_rewrite.so 来实现的,所以您要查看您的Apache 是否已经被编译进去这个模块了,并且在Apache的配置文件httpd.conf 中已经调用了这个模块。在大多数主流发行版中,Apache 2.x 是把rewrite模块已经编入进去了。比如我用的是Slackware。Apache 2.x的配置文件,放在 /etc/httpd 目录下。

在 httpd.conf 中,我们会发现类似如下的一行,是有关rewrite模块的,模块名是 mod_rewrite.so 。

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

LoadModule rewrite_module lib/apache2/modules/mod_rewrite.so 如果前面有#号,您要去掉。对于大多数发行版来说,Apache 2的模块一般是位于如下的两个位置

/usr/lib/apache2/modules


/usr/lib/httpd/modules 如果在httpd中打开调用rewrite_module的设置,查看一下是不是能调用了,要通过 httpd -M的参数来查看;

#/usr/sbin/httpd -M

如果发现有如下一行,说明模块已经能被调用了

rewrite_module (shared)

2、设置DocumentRoot的Directory:


在Apache 2.x 中,我们会看到 DocumentRoot设置的一行。这行就是存放网页程序的地方。比如LinuxSir.Org 存放在 /opt/www 目录中。那么我们就要设置 DocumentRoot为如下的。

DocumentRoot "/opt/www" 然后我们再还要对 DocumentRoot做针对性的行为设置。在一般的情况下,httpd.conf 会给一个默认的。如果你要改 DocumentRoot的路径,同时也要改针对DocumentRoot的Directory的设置,也就是

<Directory "DocumentRoot所设置的路径">

比如我们把DocumentRoot的路径改为了 "/opt/www",那我们也要把Directory做针对性的行为设置也要改成这个路径。

<Directory "/opt/www">

Options FollowSymLinks
#AllowOverride None 注:把这行前面加#号,然后加下面的一行 ,也就是 AllowOverride ALL
AllowOverride ALL
Order allow,deny
Allow from all
</Directory> 我们把AllowOverride 的参数设置为ALL,表示整台服务器上的,都支持URL规则重写。Apache 服务器要读每个网站根目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于URL重写的规则,则不会有任何效果。在一般的情况下,成熟的Web 服务器应用套件,都支持URL重写的,比如drupal和joomla 。当我们用这些程序时,会发现在安装包中有 .htaccess中有这个文件。我们把Apache配置好后,只是需要在这些程序的后台打开此功能就行了。

3、重启httpd服务器:

在一般情况下,在各个发行版中,都有httpd服务器启动脚本,比如
# /etc/rc.d/rc.httpd restart 注:Slackware Linux

# /etc/init.d/apache2 restart 注:ubuntu、Debian 等;
# /etc/init.d/httpd start 注:Fedora 、Redhat、CentOS

相关文章

  • Apache实现禁止中文浏览器访问与301重定向的方法

    Apache实现禁止中文浏览器访问与301重定向的方法

    这篇文章主要介绍了Apache实现禁止中文浏览器访问与301重定向的方法,通过修改.htaccess的配置来实现非常简便,需要的朋友可以参考下
    2016-01-01
  • 详解怎样在Linux中配置静态网络连接

    详解怎样在Linux中配置静态网络连接

    这篇文章主要介绍了详解怎样在Linux中配置静态网络连接,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • linux在vim中查找和替换方式

    linux在vim中查找和替换方式

    Linux中使用Vim编辑器查找和替换文本的方法非常直观和强大,Vim支持多种查找和替换的命令,包括向前查找、向后查找、查找并替换文本、替换所有匹配项、确认每个替换和在多个文件中进行替换等
    2025-02-02
  • 阿里云CentOS 7.4 使用Flask建站的方法

    阿里云CentOS 7.4 使用Flask建站的方法

    这篇文章主要介绍了阿里云CentOS 7.4 使用Flask建站的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 如何设置linux centos7连接网络

    如何设置linux centos7连接网络

    这篇文章主要介绍了如何设置linux centos7连接网络问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • bash脚本中将密码传递给ssh/scp命令方法详解

    bash脚本中将密码传递给ssh/scp命令方法详解

    在本篇内容里小编给大家整理了关于bash脚本中将密码传递给ssh/scp命令的相关方法和知识点,需要的朋友们学习下。
    2019-03-03
  • 服务器Centos部署MySql并连接Navicat过程详解

    服务器Centos部署MySql并连接Navicat过程详解

    这篇文章主要介绍了服务器Centos部署MySql并连接Navicat过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Linux 服务器本地部署 DeepSeek-R1 大模型并在远端Web-UI访问保姆级教程

    Linux 服务器本地部署 DeepSeek-R1 大模型并在远端Web-UI访问保姆级教

    本文详细介绍了在Linux服务器上部署DeepSeek模型的步骤,包括安装Ollama、下载模型、配置Web-UI服务以及使用Chatbox进行远程访问,感兴趣的朋友一起看看吧
    2025-02-02
  • 在CentOS上解压JAR包的完整指南

    在CentOS上解压JAR包的完整指南

    在 Linux 系统中,JAR(Java Archive)文件是一种常见的文件格式,通常用于打包 Java 应用程序的类文件、资源文件以及元数据,JAR 文件本质上是一种基于 ZIP 格式的压缩文件,本文将详细介绍如何在 CentOS 上解压 JAR 包,需要的朋友可以参考下
    2025-03-03
  • 详解bash中的初始化机制

    详解bash中的初始化机制

    这篇文章主要介绍了详解bash中的初始化机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03

最新评论