什么是重定向?
(推荐教程:apache)
通过各种方法将各种网络请求重新定个方向,转到其他地方(分为内部和外部, 内部是看不到的,外部url会变化)
这是官方的介绍,用自己的话来说, 重定向就是把网络请求到另一个地方, 本来你是想去西安的,重定向把你送到雅安去了。就是这么一个意识
重定向有什么作用呢?
在说有什么作用,我们谈谈什么时候会用到重定向?
比如现在你的网站结构要进行调整,以前访问 music.jack.net就可以访问到,现在访问不到, 用重定向就可以继续访问。
用ThinkPHP框架的小伙伴都知道,我们会有一个.htaccess文件,这个文件就是配置重定向规则. 让你在访问yuns.com就像在访yuns.com/index.php, 这里你就不用输入index.php也可以访问到. 如果你删除了.htaccess文件,你再输入yuns.com, Apache会返回找不到访问的文件
上面两个举例就是重定向的运用, 这里我们可以得出重定向的作用就是可以把网络请求的地址转到其他的地方去, 而这种转向可以在内部,用户是看不到的,也可以在外部,让用户看到。比如你的网址换了,就可以使用外部重定向,用户在收藏地址的时候,就收藏新的网址
实现重定向
实现重定向有三种方法
创建.htaccess文件
在你的项目文件中创建一个.htaccess文件, 在windows操作系统中,不可以直接新建一个【.】开头的文件,我们可以在命令行模式下创建
进入命令行模式后,切换到你要创建.htaccess文件的目录下, 这里我切换到: d: \wamp\www\ 接下来输入: echo 1>.htaccess //文件就创建成功了
我们打开.htaccess文件, 在文件中编写如下内容
RewriteEngine On #开始重写 RewriteRule ^(.*)\$ test.html #重写规则(规则是一个正则表达式) #这里的配置是一个举例,你可以根据你的项目来配置
在地址中输入你的项目地址, 然后服务器就会定向到你配置的地址中去
在Apache的httpd.conf配置
在配置中找到AllowOverride None,在它的下面添加重定向规则,这里要书写正确, 如果写错了,Apache重启将会失败
AllowOverride None #这里我们不用重写权限,可以关闭 RewriteEngine On #开始重写 RewriteRule ^(.*)\.html$ test.html #重写规则
用PHP中进行重定向
介于PHP简单,这里我们用PHP来实现重定向, 用PHP重定向地址栏中的url会变化, 而上面两种方法是不会的。这看你的项目是用外部还是内部重定向
Copy after login
配置Apache
大家如果在使用PHP的集成环境, 有的集成环境把Apache常用到的配置都配置好了,无需修改,但是自己的项目放在网上,配置是自己去配置的. 在使用重定向的时候,要配置Apache的配置文件httpd.conf,
1、修改AllowOverride none 改为AllowOverride alll,这样就可以指明Apache服务器是否去找.htacess文件作为配置文件
2、去掉LoadModule rewrite_module modules/mod_rewrite.so前的”#”
这样修改过后, 你配置的.htaccess文件就有效了
htaccess文件的工作原理
.htaccess文件提供了针对每个目录改变配置的方法,比如在一个目录放置了一个.htaccess文件,那么它的指令是作用于此目录以及此目录所有的子目录
用了.htaccess文件后性能会有所下降,开启后访页面, 要查找所有上级的目录中的.htaccess文件,建议项目上线后把重定向规则放在httpd.conf中。
The above is the detailed content of apache server configuration redirect. For more information, please follow other related articles on the PHP Chinese website!