搜索
查看: 12027|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2: |* y7 J/ G. |% e+ ~
, }# M& q4 B  K0 J: j4 }7 E( B) c
加载Rewrite模块:
$ I" q; i3 a5 U+ g: `& L在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。8 m3 N! k% W, d9 X$ E3 N* B5 j) m, f
! s* i8 U) s* g% w! k
允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):' D- T$ K; l# ~' i5 x3 H8 b6 c
. z5 {  _. b& N' H
# AllowOverride controls what directives may be placed in .htaccess files.; U  K& X) i  C- P7 J* B% C
# It can be “All”, “None”, or any combination of the keywords:2 R' d( g: `$ ^' ?2 D
# Options FileInfo AuthConfig Limit
# A# r& N. j! {#
0 ^  Q! T( i1 AAllowOverride All
) E6 p/ c" w1 J7 w9 h) T
$ e6 o1 i- m1 x4 C在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。
: s, Z; M0 G+ j8 G) f+ ^$ d  `) _9 ?
Apache Rewrite模块的简单应用:; a4 {. G; t1 H# p
Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。
. [  N& _4 x7 ~. N/ I5 e( {( g. u" Y* M' y, |. D& }
1、请求跳转
/ k" J' A! x, o3 y' G目的是如果请求为.jsp文件,则跳转至其它域名访问。
* a2 W1 w! R& h  o例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页9 y2 |: a/ Y+ S' N+ @- o
注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。
! O" g7 d: K( ?4 O+ s/ j6 O修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容
5 @# ~3 _) u% c- D" D  X
  1. RewriteEngine on
    % D8 ]2 H0 B8 z0 G/ e8 n  Y- o
  2. #开启Rewrite模块9 ], E: `9 l. w2 s! s. V8 ~2 b
  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为不区分大小写. ~6 B( I' U* v( ^7 q: ]9 N, N
2、域名跳转% d3 d. O" k/ T. o4 n
如果请求为old.xp6.org下的所有URL,跳转至b.
: ?# m1 K! y6 q8 w9 @0 Q
  1. RewriteEngine on$ A6 Z$ g3 K  ~, A
  2. #开启Rewrite模块
    . i6 m  E7 H9 S" \% _; e' b
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]8 x/ d+ p( i8 w% \* r2 d$ y# f
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符- n. X# e* m# J+ g# h2 |4 r
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链
  Q& U+ H9 G' ?* a5 \) J  z如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容
0 m# X. b; r+ N4 X# F  a; ^" A
  1. RewriteEngine on
    ) k5 t) n" E& H. u4 f, X
  2. #开启Rewrite模块  K" q- g8 t3 @) h  U
  3. RewriteCond %{HTTP_REFERER} !^$
    ; y6 `3 v, F% H1 {5 o$ \) N0 q
  4. #如果不是直接输入图片地址
    2 V: Q( d* a1 n, }" ~
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]
    7 W+ y3 C1 @. K4 {* a
  6. #且如果不是img.xp6.org所有子域名调用的0 N8 W& v  T% O* s: q/ H1 k
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]
    ( K3 ]. \  c7 ^! u0 b2 a
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]
    + d6 m8 x% K2 ~, O' i1 Y9 X
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]
    & u( a8 x' _0 t4 W# L8 I5 S. K' V
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]' C  H" ~/ M: x9 ^: S/ L3 L0 [, N5 y
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]
    * j% X( p7 C# }9 A  c
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
    4 M  A# l; J& V2 k$ l4 y3 S" 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文件% G) T$ y0 |1 s* O6 f3 Q
在Apache2\conf\httpd.conf 最后一行添加
" J* Q0 ~: R# c+ L' y
  1. RewriteEngine On
    3 J! u$ Z0 b: Z
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪4 \' x6 U' A8 X8 ~; ~" j

9 J1 c2 S0 j! V: g4 T5 XLinux+Apache环境配置类似。) w* l4 P# H8 Z5 Z5 N8 M0 r
( E$ G4 O+ ^" K, o6 D) t
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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