Apache开启Rewrite
加载Rewrite模块:
在conf目录下httpd.conf中添加
LoadModule rewrite_module modules/mod_rewrite.so
AllowOverride All
Apache Rewrite模块的简单应用:
1、请求跳转
目的是如果请求为.php文件,则跳转至其它域名访问。
RewriteEngine on
#开启Rewrite模块
RewriteRule (.*)\.php$ http://a.test.com/$1\.php [R=301,L,NC]
#截获所有.php请求,跳转到http://a.test.com/加上原来的请求再加上.php。R=301为301跳转,L为rewrite规则到此终止,NC为不区分大小写
2、域名跳转
如果请求为a.test.com下的所有URL,跳转至b.test.com
RewriteEngine on
#开启Rewrite模块
RewriteCond %{REMOTE_HOST} ^a.test.com$ [NC]
#针对host为a.test.com的主机做处理,^为开始字符,$为结尾字符
RewriteRule (.*) http://b.test.com/$1 [R=301,L,NC]
3、网址规范化
将不带www的网址转向到带www的网址上
RewriteEngine on
RewriteCond %{HTTP_HOST} ^zzbaike\.com$ [NC]
RewriteRule ^(.*)$ http://www.zzbaike.com/$1 [L,R=301]
将带WWW的网址啊转向到不带www的网址
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
4、防盗链
RewriteEngine on
#开启Rewrite模块
RewriteCond %{HTTP_REFERER} !^$
#如果不是直接输入图片地址
RewriteCond %{HTTP_REFERER} !lsc$ [NC]
RewriteCond %{HTTP_REFERER} !lsc/.*$ [NC]
#且如果不是img.clin003.com所有子域名调用的
RewriteRule (.*)\.(jpg|jpeg|jpe|gif|bmp|png|wma|mp3|wav|avi|mp4|flv|swf)$ http://lsc/me.jpg [R=301,L,NC]
5、去除index.php
实现任何非 index.php、images 和 robots.txt 的 HTTP 请求都被指向 index.php。
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
如果你的项目不在根目录请把上面这一句改为:RewriteRule ^(.*)$ index.php/$1 [L]
加载Rewrite模块:
在conf目录下httpd.conf中添加
LoadModule rewrite_module modules/mod_rewrite.so
AllowOverride All
Apache Rewrite模块的简单应用:
1、请求跳转
目的是如果请求为.php文件,则跳转至其它域名访问。
RewriteEngine on
#开启Rewrite模块
RewriteRule (.*)\.php$ http://a.test.com/$1\.php [R=301,L,NC]
#截获所有.php请求,跳转到http://a.test.com/加上原来的请求再加上.php。R=301为301跳转,L为rewrite规则到此终止,NC为不区分大小写
2、域名跳转
如果请求为a.test.com下的所有URL,跳转至b.test.com
RewriteEngine on
#开启Rewrite模块
RewriteCond %{REMOTE_HOST} ^a.test.com$ [NC]
#针对host为a.test.com的主机做处理,^为开始字符,$为结尾字符
RewriteRule (.*) http://b.test.com/$1 [R=301,L,NC]
3、网址规范化
将不带www的网址转向到带www的网址上
RewriteEngine on
RewriteCond %{HTTP_HOST} ^zzbaike\.com$ [NC]
RewriteRule ^(.*)$ http://www.zzbaike.com/$1 [L,R=301]
将带WWW的网址啊转向到不带www的网址
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
4、防盗链
RewriteEngine on
#开启Rewrite模块
RewriteCond %{HTTP_REFERER} !^$
#如果不是直接输入图片地址
RewriteCond %{HTTP_REFERER} !lsc$ [NC]
RewriteCond %{HTTP_REFERER} !lsc/.*$ [NC]
#且如果不是img.clin003.com所有子域名调用的
RewriteRule (.*)\.(jpg|jpeg|jpe|gif|bmp|png|wma|mp3|wav|avi|mp4|flv|swf)$ http://lsc/me.jpg [R=301,L,NC]
5、去除index.php
实现任何非 index.php、images 和 robots.txt 的 HTTP 请求都被指向 index.php。
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
如果你的项目不在根目录请把上面这一句改为:RewriteRule ^(.*)$ index.php/$1 [L]