搜索
查看: 12280|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2
+ ^% d, L4 l) B- x$ W: h
) M1 e' F/ `; ]1 m& q加载Rewrite模块:% B. n* J" F( i7 k5 Z- P
在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。5 g5 P! Z- C% w4 a5 G2 T
! u* d/ v+ G3 A0 {& `
允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):
' x9 j$ x6 K; O# u* K! N9 R: h% U( Z
# AllowOverride controls what directives may be placed in .htaccess files.' q: K- ?! T, e3 W" D' a
# It can be “All”, “None”, or any combination of the keywords:
- Y' q4 J1 l/ @2 V/ u4 R# Options FileInfo AuthConfig Limit
, y  h* }' m) v) N+ [8 r#
' }: A- G2 p2 Q7 R, p- JAllowOverride All
  K* W2 I$ z1 Y/ J$ W; o1 q2 Y" h
$ A; x# M) x* `" t2 s; Z在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。
* ~% n; K+ E$ Y1 I' o0 X9 |
- k; Y* G( m" q3 h: lApache Rewrite模块的简单应用:
+ x& Z1 x& b0 g2 n' ?Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。
# P3 Q/ J% @- x, t6 v0 o. A5 D5 R0 s7 V* l
1、请求跳转
% u. i2 G1 K! R8 }目的是如果请求为.jsp文件,则跳转至其它域名访问。
% P; S6 U' _. g" d例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页  |) i3 c6 L9 r( _
注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。
, e! P$ {- X. ?  t( V修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容# i1 ?/ X* ~% f6 [  \8 a. I4 S
  1. RewriteEngine on
    # N! f, w6 T  q1 w1 Z+ X
  2. #开启Rewrite模块" @# ]. v3 l. F
  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为不区分大小写, o) ?0 P. X! i4 t9 R1 |
2、域名跳转
  @3 g0 ?# v7 l1 N- l% L! b0 c如果请求为old.xp6.org下的所有URL,跳转至b.
( i' m* q" I2 r) d  O3 J
  1. RewriteEngine on
    : M) }5 p! V" W  o& f. q6 ^( _
  2. #开启Rewrite模块# ~3 i/ A4 b, l( @; z
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]  S1 [1 w. L7 G8 w/ n  {7 a  O/ W' l( L
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符
    1 n. g: l# q; G+ [+ n5 T  h7 A
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链
! t  j5 }* p. [$ Z如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容4 w8 T9 Y0 M. ?' M! }) n" @
  1. RewriteEngine on2 F: Q' S+ U! Q4 J
  2. #开启Rewrite模块: r/ O* t' T4 [* z! w: H
  3. RewriteCond %{HTTP_REFERER} !^$
    3 c9 S$ Y$ l2 b% H0 f: a
  4. #如果不是直接输入图片地址) w5 c3 ~2 R& @: @
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]' z# v1 S2 }0 s: Z4 A& z& n  m
  6. #且如果不是img.xp6.org所有子域名调用的* s8 @/ w+ z: Z- v
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]1 o+ ?2 Y0 L2 k0 H
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]
    8 H5 E2 j6 m* F5 h% b/ O
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]3 O* J! C( k: x, a
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]
    9 o6 y2 Y4 J& N0 j8 t) x+ o. l* Z
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]( ]  i- @0 s- q# X8 T/ C
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]) L; N* _* ~7 Y* C
  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文件
) {: E0 i) N" A0 V7 J在Apache2\conf\httpd.conf 最后一行添加( g6 {' r1 W* [" f- `. ^4 J
  1. RewriteEngine On
    $ Q" w( w% D  ?/ H7 `9 D& H9 m
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪& u, E1 F" a, j! S0 `/ _% B1 W

" W( v7 Y  i- D. b" y. Q( xLinux+Apache环境配置类似。
( J8 Q& A6 ~# w8 I0 n/ u
& j9 X8 u0 [( x
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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