标签:
一 、URL重写作用
实现伪静态
图片防盗链
自定义404错误页面
二、重写模块开启
apache的配置文件httpd.conf文件中开启:
LoadModule rewrite_module modules/mod_rewrite.so
三、在哪儿配置重写规则?作用范围有何不同
1) 可以使用在Apache主配置文件httpd.conf中(服务器级别,适用于拥有管理权限的服务器)
2) 可以使用在httpd.conf里定义的虚拟主机配置中
3) 可以使用在配置文件.htaccess中 (目录级别,适用于没有管理权限的虚拟主机)
四、重写举例
1) 隐藏Apache下的某个目录,使得对该目录的任何请求都重定向到另一个文件。
a) httpd.conf的实现方法
我们放下面的部分到/usr/local/apache/conf/httpd.conf :
options Indexes followsymlinks
allowoverride all
rewriteengine on
rewritebase /
rewriterule ^(.*)$ index.html.en [R=301]
注:rewriteengine on 为重写引擎开关,如果设为off,则任何重写规则定义将不被应
用,该开关的另一好处就是如果为了临时拿掉重写规则,则改为off再重启动Apache即
可,不必将下面一条条的重写规则注释掉。
rewritebase / 的作用是如果在下面的rewriterule定义中被重写后的部分(此处为文件
名index.html.en)前面没有/,则是相对目录,相对于这个rewritebase后面的定义也就
是/usr/local/apache/htdocs/index.html.en,否则,如果此处没有rewritebase /这
一项,则被重写成http://192.168.1.56/usr/local/apache/htdocs/manual/index.html.en,
显然是不正确的。
不过这里我们也可以不用rewritebase / , 而改为:
rewriteengine on
rewriterule ^(.*)$ /index.html.en [R=301]
或者
rewriteengine on
rewriterule ^(.*)$ http://192.168.1.56/index.html.en [R=301]
b> .htaccess的实现方法
我们先放下面的部分到httpd.conf:
options Indexes followsymlinks
AllowOverride all
然后放下面的部分到/usr/local/apache/htdocs/manual/.htaccess中
rewriteengine on
rewritebase /
rewriterule ^(.*)$ index.html.en [R=301]
注:对文件.htaccess所作的任何改动不需要重启动Apache.
标签:
原文地址:http://blog.csdn.net/jinxingfeng_cn/article/details/51954880