【概述】URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。举个例子来说,如果通过浏览器进来的URL是index.php?type=news&&cata=sport&&id=123那么它可以被重写成 “news-sport-123.html”,这样的URL,这样的网址可以更好的被搜索引擎抓取。

  【优点】URL重写可以降低使用动态网页时受sql注入攻击的几率,还可以在不静态化的网页的情况下,利于搜索引擎对网页的抓取(SEO)。

  【配置】

  1,启用httpd.conf配置文件中的rewrite静态库

#开启apache rewrite重写模块
LoadModule rewrite_module modules/mod_rewrite.so

  2,配置测试虚拟主机

  2.1,启用httpd.conf配置文件中的httpd-vhosts.conf选项

# Virtual hosts 开启此选项,使其包含httpd-vhosts.conf配置文件
Include conf/extra/httpd-vhosts.conf

  2.2在httpd-vhosts.conf配置文件中添加一个虚拟主机

<VirtualHost *:80>
DocumentRoot "X:/phptest/urlrewrite_test"
ServerName www.gazeon.com
#Directory这个段,主要用处指定,该目录的访问权限
<Directory "X:/phptest/urlrewrite_test">
#允许所有人访问
Allow from all #不列出该网站的文件列表
Options None #设置网站默认的首页面 http://www.gazeon.com
DirectoryIndex index.php #配置统一的 404页面
errordocument 404 /error404.html #开启重写引擎
RewriteEngine On
#配置url重写规则 ,使用正则匹配,$1,$2,$3表示第N个子表达式中匹配的结果
RewriteRule (\w+)-(\w+)-(\d+)\.html$ index.php?type=$1&&cata=$2&&id=$3 </Directory>
</VirtualHost>

  2.2.1【注意】如果你的apache安装目录没有httpd-vhosts.conf文件,可以将以上配置内容直接写到httpd.conf配置文件中。

  2.2.2【另外】你也可以在需要访问的文件目录下,直接通过写.htaccess文件来规范重写规则,比在httpd.conf文件中配置更灵活

#.htaccess文件内容
<IfModule rewrite_module>
#开启重写引擎
RewriteEngine On
#配置url重写规则 ,使用正则匹配,$1,$2,$3表示第N个子表达式中匹配的结果
RewriteRule (\w+)-(\w+)-(\d+)\.html$ index.php?type=$1&&cata=$2&&id=$3
</IfModule>

  重启Apache。  

  3,在hosts文件中添加规则(可选)

  打开C:\Windows\System32\drivers\etc 目录下的hosts文件,添加如下代码

127.0.0.1/urlrewrite_test www.gazeon.com

  4,建立测试网也页

  在X:\phptest\urlrewrite_test 下新建index.php

<?php
/*
2016/3/10 YunGaZeon
此网页仅用于URL重写测试,因此尽量简单
*/
echo '<pre>';
print_r($_GET);
echo '</pre>';

  4.1浏览器打开www.gazeon.com/news-sport-123.html 测试查看

  显示以下内容,则配置成功

Array
(
[type] => news
[cata] => sport
[id] => 123
)

  

  

  

【Apache】apache简单配置URL重写规则的更多相关文章

  1. windows Apache服务器简单配置虚拟域名(转载)

    1.找到apache目录下的conf下的extra下的httpd-vhosts.conf虚拟主机配置文件 将下面的代码复制粘贴到最下面:   #<VirtualHost *:80>#   ...

  2. Apache Rewrite url重定向功能的简单配置

    http://www.jb51.net/article/24435.htm 1.Apache Rewrite的主要功能 就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我 ...

  3. Apache URL重写规则

    1.简介 Apached的重写功能,即是mod_rewrite模块功能,它是apache的一个模块.它的功能非常强大,可以操作URL中的所有部分. 因此我们就可以改写url,给用户提供一个简介大方的u ...

  4. Apache服务器的简单配置与安全策略

    在之前讲的关于weevely后门分析中,有说到利用Apache的配置文件.htaccess来隐藏php后门.关于.htaccess文件的用途,在此结合Apache服务器的具体配置作一详解,也算是自己的 ...

  5. asp.net 网站在Apache下的配置,就这么简单

    asp.net 网站在Apache下的配置,就这么简单 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames ...

  6. asp.net 站点在Apache下的配置,就这么简单

    asp.net 站点在Apache下的配置,就这么简单 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames ...

  7. windows下简单配置apache

    不得不做个笔记,不然每次配置都记不清楚... 详细的配置朋友这边写的很好.地址 # 对 PHP 4 LoadModule php4_module "c:/php/php4apache2.dl ...

  8. Apache配置URL重定向

    Apache配置URL重定向 修改/etc/httpd/conf/httpd.conf文件的内容 <Directory "/var/www"> AllowOverrid ...

  9. Linux中Apache服务器的简单配置

    配置Apache服务器: 1.安装Apache,可以参考Linux 中yum的配置来安装: yum install http* -y 2.修改SELinux: setenforce 0 查看: 3.防 ...

随机推荐

  1. jQuery中的Ajax几种请求方式

    1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) : 请求的HTML页的URL地址. data (M ...

  2. [Cocos2d-x For WP8]ActionManager动作管理

    在Cocos2d-x里面可以通过CCActionManger类来管理动作的暂停和恢复,CCActionMessage是管理所有Action的单例,一般情况下并不直接使用这个单例,而是使用CCNode的 ...

  3. URAL 1244. Gentlemen(DP)

    题目链接 这题不难啊...标记一下就行了.表示啥想法也没有. #include <cstring> #include <cstdio> #include <string& ...

  4. 闲扯淡json格式与对象

    在这里推荐使用http://json.tongxiehui.net/ 这个在线解析jso格式 JSON 语法是 JavaScript 对象表示语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保 ...

  5. PHP 高效分布代码转的

    在<efficient pagination using mysql>中提出的clue方式. 利用clue方法,给翻页提供一些线索,比如还是SELECT * FROM `csdn` ord ...

  6. python 面向对象 初级

    面向对象 与 面向过程 面向对象对象,是根据某个对象,进行编写对象属性,不考虑对象以外的因素,只对对象本事的一些属于自己的属性进行创造,不用考虑 业务之间的逻辑. 面向过程, 是按照业务的一步步发展进 ...

  7. 用简单直白的方式讲解A星寻路算法原理

    很多游戏特别是rts,rpg类游戏,都需要用到寻路.寻路算法有深度优先搜索(DFS),广度优先搜索(BFS),A星算法等,而A星算法是一种具备启发性策略的算法,效率是几种算法中最高的,因此也成为游戏中 ...

  8. ZeroclipboardJS+flash实现将内容复制到剪贴板实例

    Zeroclipboard 的实现原理 Zeroclipboard 利用 Flash 进行复制,之前有 Clipboard Copy 解决方案,其利用的是一个隐藏的 Flash.但最新的 Flash ...

  9. [LintCode] Add Binary 二进制数相加

    Given two binary strings, return their sum (also a binary string). Have you met this question in a r ...

  10. Maya 2015 中英文切换

    我们在使用Maya软件的时候,有时候需要把语言在中英文之间切换,目前我感觉在不用插件的情况下,下面两种方法可以比较容易的做到: 方法一: 右键我的电脑属性,高级系统设置里面找到环境变量面板,然后新建一 ...