【概述】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重写规则的更多相关文章
-
windows Apache服务器简单配置虚拟域名(转载)
1.找到apache目录下的conf下的extra下的httpd-vhosts.conf虚拟主机配置文件 将下面的代码复制粘贴到最下面: #<VirtualHost *:80># ...
-
Apache Rewrite url重定向功能的简单配置
http://www.jb51.net/article/24435.htm 1.Apache Rewrite的主要功能 就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我 ...
-
Apache URL重写规则
1.简介 Apached的重写功能,即是mod_rewrite模块功能,它是apache的一个模块.它的功能非常强大,可以操作URL中的所有部分. 因此我们就可以改写url,给用户提供一个简介大方的u ...
-
Apache服务器的简单配置与安全策略
在之前讲的关于weevely后门分析中,有说到利用Apache的配置文件.htaccess来隐藏php后门.关于.htaccess文件的用途,在此结合Apache服务器的具体配置作一详解,也算是自己的 ...
-
asp.net 网站在Apache下的配置,就这么简单
asp.net 网站在Apache下的配置,就这么简单 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames ...
-
asp.net 站点在Apache下的配置,就这么简单
asp.net 站点在Apache下的配置,就这么简单 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames ...
-
windows下简单配置apache
不得不做个笔记,不然每次配置都记不清楚... 详细的配置朋友这边写的很好.地址 # 对 PHP 4 LoadModule php4_module "c:/php/php4apache2.dl ...
-
Apache配置URL重定向
Apache配置URL重定向 修改/etc/httpd/conf/httpd.conf文件的内容 <Directory "/var/www"> AllowOverrid ...
-
Linux中Apache服务器的简单配置
配置Apache服务器: 1.安装Apache,可以参考Linux 中yum的配置来安装: yum install http* -y 2.修改SELinux: setenforce 0 查看: 3.防 ...
随机推荐
-
HTMLParser使用
htmlparser[1] 是一个纯的java写的html(标准通用标记语言下的一个应用)解析的库,它不依赖于其它的java库文件,主要用于改造或提取html.它能超高速解析html,而且不会出错.现 ...
-
Delphi String 常用字串符处理函数
Delphi 在面对跨平台开发,程序语言也改进不少,不过有些改进,让原本 Delphi 开发者有些不适应,最显注的就是字串处理函数了,原本 Pascal 语言字串起始由 1 开始,几乎是它的经典了,新 ...
-
JS 获取 地址栏 参数
法一:正则表达式 /** * 采用正则表达式获取地址栏参数: **/ var GetQueryString = function (name) { var reg = new RegExp(" ...
-
怎样去除ul li a标签文字下的下划线
这个主要是text-decoration属性,颜色的话就是普通的了 <style> ul li a{ text-decoration:none; } ul li a { color: ...
-
zookeeper适用场景:如何竞选Master及代码实现
问题导读:1.如何利用zookeeper保证集群Master可用性和唯一性?2.zookeeper竞选Master包含哪些过程?3.zookeeper竞选Master机制利用了zk哪些特性? 在zoo ...
-
notepad正则表达式
文件名称匹配 文件名称: boost_chrono-vc100-mt-1_49.dll 对应的notepad正则表达式: \w*_\w*-\w*-\w*-\w*-\w*.dll 移除空行 查找目标: ...
-
windows上运行npm Error: ENOENT, stat &#39;C:\Users\
node 中 npm报错 Error: ENOENT, stat C:\Users\Administrator\AppData\Roaming\npm 报错原因可能是修改了node的默认安装路径.于是 ...
-
python的迭代器、生成器、装饰器
迭代器.生成器.装饰器 在这个实验里我们学习迭代器.生成器.装饰器有关知识. 知识点 迭代器 生成器 生成器表达式 闭包 装饰器 实验步骤 1. 迭代器 Python 迭代器(Iterators)对象 ...
-
JS中navigator对象详解
<code class="language-html"><!doctype html> <html> <head> <meta ...
-
解决python-memcache报错:“Unknown flags on get: 20”
[本文出自天外归云的博客园] 在使用python的pytho-memcache库时出现了一个问题,在调用get方法获取键值的时候报错:Unknown flags on get: 20 在网上查了,发现 ...