开启.htaccess重写之前先来看看mod_rewrite

分类:技术文章 时间:2019-07-05 14:55 浏览:0 评论:0
0

      Apache的Mode Rewrite模块提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。在大多数情况下,它和.htaccess文件配合使用。就是说,.htaccess文件的一个主要功能是用来重写URL请求,那么在本小节里,我们来看看如何实现重写。

mod_rewrite

      实现所有这些神奇功能的模块叫做mod_rewrite,请确保你的服务器安装并启用了该模块:

sudo a2enmod rewrite

      我们一般会把所有涉及URL重写或者重定向的代码这样放置:

<IfModule mod_rewrite.c>    
   # Turn on rewrite engine    
   Options +FollowSymlinks    
   RewriteEngine on    
   # More rules below    
   ...    
</IfModule>

开启 httpd.conf 的 rewrite

      在[Apache安装目录]/conf/httpd.conf中找到#LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的注释符号#。如果没有这行,请添加。并确认apache安装目录下的modules文件夹中是否有mod_rewrite.so这个文件。这样就启用了Mod Rewrite功能。

       在[Apache安装目录]/conf/httpd.conf中找到

<Directory />    
  Options FollowSymLinks    
  AllowOverride None    
  Order deny,allow    
  Deny from all    
</Directory>

       把“AllowOverride None”改成“AllowOverride All”,这样所有的文件夹都支持.htaccess了,或者针对指定的文件夹启用.htaccess,可以在[Apache安装目录]/conf/httpd.conf中加入

<Directory "D:/sites/nowamagic/">    
   Options Indexes FollowSymLinks    
   AllowOverride All    
   Order allow,deny    
   Allow from all    
</Directory>

      这种做法一般是和虚拟主机配置在一起的,所以大多数会把上述配置代码写入[Apache安装目录]/conf/extra/httpd-vhost.conf中,这样比较清晰易于管理。

      开启了 Apache 的 rewrite 功能后,就可以使用 .htaccess 来进行重写了。关于 mod_rewrite 大概就谈到这里,下面是一些我们需要注意的地方:

      FollowSymlinks必须启用,这是rewrite引擎的安全需求。

      通常FollowSymlinks在Apache的主配置文件中就已经启用了,所以通常可以省略。

      RewriteEngine命令用于启用rewrite引擎

      IfModule命令用于判断Apache是否安装了mod_rewrite模块,之后笔者会省略该命令,但不代表这是个好习惯。

      mod_rewrite会处理所有提交给Apache的URL请求,并与之后的规则进行匹配


1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 技术文章 > 开启.htaccess重写之前先来看看mod_rewrite

用户评论