要求:

假如我请求一个地址:www.lxy.com/news-sport-id123.html

转成:www.lxy.com/show.php?cate=news&class=sport&id=123

步骤:

①首先我们需要在apache中启用rewrite模块

打开apache的httpd.conf文件,找到#LoadModule rewrite_module modules/mod_rewrite.so,将前面的‘#’去掉。

②创建虚拟目录

<VirtualHost *:80>

#网站域名

ServerName www.lxy.com

#网站根目录

DocumentRoot "E:/web/lxy/"

#设置网站目录的权限

<Directory "E:/web/lxy/">

#设置顺序,如下规则的意思是首先允许所有访问但是拒绝1.1.1.1这个ip访问这个刚开始把我弄晕了

Order allow,deny

Allowfrom All

Deny from 1.1.1.1

#options选项设置网站是否可以列出文件列表,网站正式上线后除了有特殊需求否则都不允许列出文件列表,但是需要特别注意的是如果开启apache的rewrite后,options的参数必须为+indexes

#允许列出文件列表

Options +Indexes

#不允许列出文件列表的选项为 Options +Indexes

#设置欢迎页面

DirectoryIndex  11.php

#如果匹配不到,可以指定一个错误页

errorDocument404 /404.php

#可以把Allowoverride这个启动,然后把重写规则放到 .htaccess中,也可以直接放在虚拟主机中配置

#Allowoverride All

RewriteEngine On

#重写规则

#RewriteRule news-id(\d+)\.html$ show.php?id=$1

RewriteRule ^([a-zA-Z]+)-([a-zA-Z]+)-id(\d+)\.html$show.php?cat=$1&class=$2&id=$3

</Directory>

</VirtualHost>

③.下面我写一个show.php的文件,内容主要为打印出接收到的参数即可

<?php

Print_r($_SERVER);

?>

接下来我们来访问以下即可

我们也可以把重新规则写入.htaccess文件中,将.htaccess文件放到网站根目录 或者 需要执行的PHP文件所在的文件夹下。然后将 Allowoverride All添加到虚拟目录的配置选择中去,在.htaccess文件中添加重写规则即可。

  1. #创建一个Rewrite Engine (URL重写工具)

  2. RewriteEngine On

  3. #定重写规则: 主要使用正则表达式

  4. RewriteRule  ^([a-zA-Z]+)-([a-zA-Z]+)-id(\d+)\.html$ show.php?cat=$1&class=$2&id=$3

    效果跟将重写规则写在配置文件中是一样的。

转载于:https://blog.51cto.com/wangyueheng88/1383911

apache 重写和虚拟目录配置相关推荐

  1. nginx虚拟目录配置

    2019独角兽企业重金招聘Python工程师标准>>> 今天搞了N久的虚拟目录配置,在几乎要放弃的时侯偶然看到一篇文章,将我的问题搞定 原贴地址:http://blog.sina.c ...

  2. Tomcat虚拟目录配置

    为什么80%的码农都做不了架构师?>>>    设虚拟目录 "site",通过http://localhost:8080/site访问物理路径 D:"s ...

  3. 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。...

    调试ASP.NET程序时发生错误:在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的.如果在 IIS 中没有将虚拟目录配置为应用程 ...

  4. linux系统中apache虚拟目录配置

    在搭建网站的时候,我们会经常在同一台服务器上面搭建多个站点,这时候就需要用到apache的虚拟机知识.下面就linux系统下apache虚拟目录的配置说简要说明: 1.源代码安装apache + PH ...

  5. mac中apache服务器及虚拟主机配置

    输入 sudo apachectl start,这样Apache就启动了.打开Safari浏览器地址栏输入 "http://localhost",可以看到内容为"It w ...

  6. linux下安装iasp以及apache多站点虚拟主机配置

                      安装配置 1.     linux下安装iasp 1.1需要准备的的安装包: httpd-2.0.59.tar.gz(最好选该版本,2.2版本在安装配置完后启动出错 ...

  7. Apache多网站虚拟目录域名

    一台服务器安装了Apache,如何绑定多个域名或网站呢? 最简单高效的方法如下: 1. 先打开Apache的配置文件httpd.conf,在这个文件, 找到这句:"#Include etc/ ...

  8. Apache 2.2 虚拟主机配置(本人推荐的)

    1.域名问题 假设我们有两个域名:www.aaa.com和www.bbb.com 为了方便测试,我们可以通过系统下的hosts文件,设定解析这两个域名时对应的ip,在xp系统盘的 windows\sy ...

  9. nginx下虚拟目录配置301域名重定向

    方法一. 例: 省略www.chtml.cn虚拟主机server配置 server { listen 80; server_name chtml.cn www.chtml.cn; return 301 ...

最新文章

  1. Pycharm的运行和简单调试
  2. 最小树形图复杂度分析
  3. CPU为什么是方形而不是圆形的?
  4. acwing2041. 干草堆(差分数组)
  5. Docker容器学习梳理-容器时间跟宿主机时间同步
  6. ADF开发遇到错误:JBO-26030 无法锁定记录,其他用户持有该锁
  7. 向前、向后、横着走,双足机器人Cassie,靠深度强化学习学会了走路丨论文
  8. uni 加入图标_uniapp中引入 iconfont
  9. w3cschool php下载_w3cschool下载_W3Cschool v2.0离线版
  10. springboot使用yml格式报错
  11. 苹果录屏没声音_苹果手机外放没声音,自己动手就能解决
  12. 【CUDA】解决NVIDIA安装程序失败问题
  13. 使用 Amazon WAF 进行 Captcha 人机验证
  14. 注解的写法格式与作用
  15. 学习大数据要掌握哪些语言?哪些必备知识和技能呢?
  16. 《周志明的软件架构课》学习笔记 Day11
  17. 根据银行卡获取发卡行信息
  18. nginx 访问图片404_Nginx学习笔记(二、Nginx配置文件详解) - 被猪附身的人
  19. 串的一些基础操作(c语言)~DS笔记⑤
  20. 有人问我为什么不买iphon12,我为什么要买iphone12 pro max

热门文章

  1. hihoCoder挑战赛16 A—— 王胖浩与三角形
  2. 【Java学习笔记六】常用数据对象之String
  3. Linux网络编程服务器模型选择之并发服务器(下)
  4. 指针与零的比较以及浮点型与零的比较
  5. 1006. 换个格式输出整数 (15)
  6. 第九篇 并发(进程和线程)
  7. 2.用Python套用Excel模板,一键完成原亮样式
  8. CMU Database Systems - Sorting,Aggregation,Join
  9. CRM公海自动回收规则
  10. 一个例子彻底搞懂C++的虚函数和纯虚函数