RewriteEngine On
  1. RewriteRule 建立一条重写规则
    参数
    Pattern 正则表达式,用以匹配当前的URL
    Substitution 重写模板,作用是当原始URL与Pattern相匹配时,用来替换的字符串
RewriteRule Pattern Substitution [flags]

3.RewriteCond 定义重写发生的条件

%{REQUEST_FILENAME} 表示服务器变量,请求相匹配的本地文件系统的文件路径名
!-d 表示判断是否不是一个目录(文件夹)
!-f 表示判断是否不是一个文件

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f

三、重写案例

  1. 把访问index.html重写到index.php
RewriteRule test.html  test.php
  1. 把访问test8.html重写到访问test.php?id=8
RewriteRule ^test([0-9]*).html$ test.php?id=$1
  1. 把访问test-1-3.html,重写到test.php?pid=1&id=3
RewriteRule ^test-([a-zA-Z0-9\-]+)-([0-9]+)\.html$ test.php?pid=$1&id=$2
  1. 把访问 test5,重写到 test.php?id=5
RewriteRule ^test([0-9]+)$ test.php?id=$1
  1. 把访问 test.test/c19/a255.html,定向到 test.test/test.php?category=19&article=255
RewriteRule ^c([0-9]+)/a([0-9]+)\.html$ test.php?category=$1&article=$2
 

括号在正则中表示一个闭包匹配,用$加数字引用。
例如,第一个()括号,用$1引用,第二个()括号,用$2引用,以此递增

  1. 隐藏入口文件 index.php
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule . index.php
                                    配置虚拟目录+默认页
如果有多个项目文件夹,怎么配置让localhost指向其中的某个文件夹呢。
1.检查apache的配置文件httpd.conf,看Virtual hosts模块是否开启。
Include conf/extra/httpd-vhosts.conf 。前面的【#】需要去除。
2.打开httpd-vhosts文件, 这里由于80端口被占用了,所以用了8080
                                    本地的httpd.conf文件的LoadModule rewrite_module modules/mod_rewrite.so已经开启根目录下的.htaccess文件重写规则如下:<IfModule mod_rewrite.c>Options +FollowSymlinksRewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewri...
                                    本人因为之前安装了Apache服务,现在由于开发了PHP的系统,需要部署在该机器上运行,所以就采用Apache来进行解析,如何安装Apache服务器可以参考本人的另外一篇博客(点击链接访问)。原声的Apache服务是不安装PHP的解析环境的,所以需要我们自己配置一下PHP的运行环境。另外,当PHP环境安装好以后,如果我们想访问一个域名或者IP的时候,不想自己去填充index.php,那么我们可以使用重写的方式去去除入口文件index.php,下面我就介绍一下具体的解决方案。
简单的项目开发中,有时候会需要把URL中的入口文件模块名等隐藏起来以达到缩短URL和做伪静态的目的。这样的话有利于SEO优化,另外就是比较美观。
下面我就TP框架中的做法来说一下。
1.修改Apache的配置文件:AllowOverride None    修改为: AllowOverride All。这么做的目的就是为了让Apache支持.htaccess文件php隐藏入口文件的方法:首先开启apache重写模块;然后在项目根目录与入口文件同级的目录重写分布式配置文件“.htaccess”即可。本文操作环境:windows7系统、PHP7.1版,DELL G3电脑php隐藏入口文件方法第一步:开启apache重写模块 重启apacheLoadModule rewrite_module modules/mod_rewrite.so第二步:在项目根目录与入...
                                    此文件入口文件index.php,此文件入口文件index.php//定义一下ThinkPHP框架存放的路径define('THINK_PATH','./ThinkPHP/');//定义当前的项目的名称,此处的项目可理解为模块home理解为前台部分define('APP_NAME','protal');//定义项目的路径define('APP_PATH','./protal/');define...
                                    apache隐藏index.php的方法:首先检测Apache是否支持“mod_rewrite”;然后开启“mod_rewrite”;接着找到“AllowOverride None”并将None改为All;最后修改htaccess文件即可。linux服务器中Apache隐藏index.php入口文件1.检测Apache是否支持mod_rewrite通过php提供的phpinfo()函数查看环境配置...
                                    APACHE重写去除入口文件index.php下面我说下 apache 下 ,如何 去掉URL 里面的 index.php 例如: 你原来的路径是: localhost/index.php/index 改变后的路径是: localhost/index 1.httpd.conf配置文件中加载了mod_rewrite.so模块 //在APACHE里面去配置 #LoadModule rewrite_mo...
                                    1.什么是process?
process是node的全局变量,这个变量有一个env属性。创建一个js文件index.js,打印process变量console.log(process),使用node环境运行:
node index.js
2.process.env.NODE_ENV 是什么?
1.这个变量不是process.env本来就有的,是通过设置得到的;
2.通过这个变量可以判断我们环境是开发环境还是生成环境。
3.配置process.env.NODE_ENV
(1)webpack4
                                    例如你的原路径是 http://localhost/test/index.php/index/add那么现在的地址是 http://localhost/test/index/add如何去掉index.php呢?1、httpd.conf配置文件中加载了mod_rewrite.so模块 //在APACHE里面去配置#LoadModule rewrite_module modules/mod_rewr...