搜索
查看: 12112|回复: 1

[网站] Apache如何开启伪静态

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2
, P7 }  |+ M3 ~- Q0 U1 ?# I
) S) V0 I" w* L% l. o3 A) f加载Rewrite模块:
- h* t4 J$ `( x5 i, U在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。7 v" E9 d1 n: _: T% h  b5 h
  M% `0 }3 g' h; a% S3 K) @( G9 h
允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):
% ^: a8 P$ a% A9 [
$ d- n+ T  M4 U5 i  M- s# AllowOverride controls what directives may be placed in .htaccess files.; s5 }- X" r/ \' T' u- ~
# It can be “All”, “None”, or any combination of the keywords:
; A' C8 V" M/ c# w6 s% T6 m3 H# Options FileInfo AuthConfig Limit# K! S& U; F. a5 M: {! }
#
  u; _5 C  V' }+ ?AllowOverride All
1 E( P2 t  z# R8 W$ ]: X+ S5 r: H- ]! H' o
在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。4 r' M' Y( X1 ~) R9 o" K

+ G. E) G+ Q  DApache Rewrite模块的简单应用:
: U& B! H2 i; \7 zRewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。7 y; M5 j  `) p/ L4 f0 ~
3 @1 n2 ?+ l/ }% c# o3 ?
1、请求跳转# ]( L& `5 B8 I! ?
目的是如果请求为.jsp文件,则跳转至其它域名访问。
. ]9 F* U/ x# ]8 ?: F例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页" m/ x' c: T' S2 E* g0 H
注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。/ J) u' y! N, q& S
修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容0 g( C( V3 P! F
  1. RewriteEngine on
    " X. S! E9 T" T' X9 e' P
  2. #开启Rewrite模块
    8 U2 f8 R$ t5 c
  3. RewriteRule (.*)\.php$ http://www.xp6.org/$1\.jsp [R=301,L,NC]
复制代码
#截获所有.jsp请求,跳转到http://b.xp6.org/加上原来的请求再加上.php。R=301为301跳转,L为rewrite规则到此终止,NC为不区分大小写: L" u2 R& C1 g( O. F
2、域名跳转; L0 `7 x( f' w9 }
如果请求为old.xp6.org下的所有URL,跳转至b.. l1 Q( d. `) y5 u" Z  `
  1. RewriteEngine on" i6 Y' t/ N1 V& e7 N
  2. #开启Rewrite模块
    ; Q% g6 g1 H' l( m# U, Z
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]
    ' Y5 k5 h1 ]( w6 R' Y5 R: }. x
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符$ \3 b- O. i6 F& f" }0 l$ m5 Y
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链
) n7 z! _2 Z3 C% G% ~如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容1 Y* s! {  H9 I$ S
  1. RewriteEngine on
    / p7 K; z7 V4 t9 e; S6 U
  2. #开启Rewrite模块
    " m8 X- T3 n, l: t; y
  3. RewriteCond %{HTTP_REFERER} !^$, O0 f; b# B- b! D7 _0 }
  4. #如果不是直接输入图片地址$ {$ e( J" r6 q0 X/ w
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]- ^" v  U8 P5 |' ^/ G# l
  6. #且如果不是img.xp6.org所有子域名调用的. O( ?5 h6 }* |8 v, I7 G* V
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]
    - n: R  Y4 t# r* q+ D* L' M1 }+ _
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]
    & t, g( F! G' C& s
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]
    0 N3 o4 k# u9 o- K% b: Y0 J' w) m0 S5 U
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]$ a. Z3 d' t4 t% y$ X1 x
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]
    8 O. _" a( i& {9 p' p  T
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
    ; z- V0 W/ u1 ?  i2 G! Q
  13. RewriteRule (.*)\.(jpg|jpeg|jpe|gif|bmp|png|wma|mp3|wav|avi|mp4|flv|swf)$ http://xp6.org/err.jpg [R=301,L,NC]
复制代码
4、不需要定义.htaccess文件6 p! d' k  ]( G, `7 F. C# g& d
在Apache2\conf\httpd.conf 最后一行添加
) m6 i; L9 ~; b7 C1 ^' E
  1. RewriteEngine On  s4 M: v$ U2 V
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪% b, M: Z/ ?& i% Q
7 n6 d; N$ U  r% L0 @% L
Linux+Apache环境配置类似。
$ ]8 [2 \+ X! Z& u; b9 f. F. l) r7 j9 S9 P2 ^* ]; D
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

热议作品
精华帖子排行
精彩推荐

虾皮社区,成立十年了!

站长自己也搞不懂想做个什么,反正就是一直在努力的做!

Copyright © 2007-2019 xp6.org Powered by Discuz

QQ|Archiver|手机版|小黑屋|虾皮社区 鲁公网安备 37021102000261号 |网站地图
返回顶部 返回列表