搜索
查看: 11115|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2
8 @6 L; Q1 s0 U8 R2 ]% H" x# g& x6 M- ^. ]
加载Rewrite模块:
7 p8 \* V- M7 K$ B4 v在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。; s% b' C8 \4 c+ V& Y, M
* c: C+ J4 L; y  L5 y) B( }, u
允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):! `: ^0 W( j9 S

8 k0 c% P- C8 b# AllowOverride controls what directives may be placed in .htaccess files.
) L6 M1 V4 ~7 A/ [, j+ }/ N# It can be “All”, “None”, or any combination of the keywords:
& C, y' e2 d6 X1 R0 y# T0 U# Options FileInfo AuthConfig Limit
! e0 t( R1 l3 D6 o3 h* u( N7 u#
* U' f: g% q: q8 L/ EAllowOverride All7 f  S( E& J$ L
, q5 ~8 d7 E* o8 G
在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。
8 @2 `5 Y' {8 J/ Y) k7 k  B2 j  H* V7 t7 i8 \. F3 O/ p
Apache Rewrite模块的简单应用:  D$ i( u( ]5 u8 a/ @1 z% K& h
Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。0 u1 w: Q/ G: E) J. E+ y2 m' K$ |

0 H! \4 R9 N4 b9 T. ^* `1、请求跳转
" X( ~7 P  ]1 x$ V目的是如果请求为.jsp文件,则跳转至其它域名访问。! w& {& ^) B. A, v  L3 i0 c
例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页
/ ~) Q# N- `& C( M; L3 q& [注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。
4 y- j" D0 M0 X8 W- r修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容
& N$ b+ R  I; c# e1 D( ?7 M
  1. RewriteEngine on
    ) E- ~. ~) r9 h  h/ L
  2. #开启Rewrite模块2 g# p) _, _& p: F% C: D
  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为不区分大小写
: T9 z7 O  v$ d8 g2、域名跳转
; b$ h. t/ a7 a$ E4 A如果请求为old.xp6.org下的所有URL,跳转至b.8 b# I5 t* a7 U9 h  D2 c
  1. RewriteEngine on
    ) r. d  @. z3 C6 c* T" o! }: u7 r
  2. #开启Rewrite模块
      m2 \" E/ k6 L& _  \+ @
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]# `+ \# w. u0 N* j) O5 @
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符8 d3 t  W. V; `
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链# s8 n6 _; ~) @0 w# E
如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容
1 G4 f0 c, q+ V/ Z  `
  1. RewriteEngine on
    4 a4 l) D3 G# L1 s. ]% V
  2. #开启Rewrite模块
    : u3 u! `1 _; q
  3. RewriteCond %{HTTP_REFERER} !^$
    , B2 l* z9 U2 P3 b2 ~# `
  4. #如果不是直接输入图片地址
    . ?% Y8 `& M7 m7 @) t. b: f- t
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]
    4 J6 F% E% Q1 w
  6. #且如果不是img.xp6.org所有子域名调用的4 j4 L& w$ k8 v$ _; W: W
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]* n1 u' R" ?4 p% j9 N
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]
    9 M1 w3 {5 m) K! Z7 r) B
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]# K7 S0 D: B: J3 ^5 D5 ?" h- {
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]1 h6 Q$ X+ a( W. R, Z
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]6 z1 `$ e: I3 W
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
    ; y) d: Q5 M; `# \$ H
  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文件& }+ k, T& i6 O! g/ w. M
在Apache2\conf\httpd.conf 最后一行添加
3 _( f- W7 ]% X  \' f) S) I  x) E' f
  1. RewriteEngine On
    8 V. _3 ?: b/ U. `5 A: d+ }8 b
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪) I; P4 v1 D& D4 A7 F- E8 Q8 f

' M1 u% T' g& O! hLinux+Apache环境配置类似。0 W+ `0 ^6 Y0 C0 o3 u6 j  k
1 b* W) L. I1 Y2 y3 _7 T! _
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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