搜索
查看: 1260|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2# r' s+ u( K  @" T5 D( s
8 s4 t4 _1 k5 X
加载Rewrite模块:
! l$ T7 L+ i5 _% k9 s在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。
6 n0 l% H- W$ c$ {) G) s0 N' U, `8 B/ N6 z! ?
允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):
- C8 |4 K5 b' f( k
/ \1 b+ v8 J( m( t# AllowOverride controls what directives may be placed in .htaccess files.. f3 {4 d0 I8 l4 d4 I. V; \! D( ^
# It can be “All”, “None”, or any combination of the keywords:, O+ G" J3 b8 `& M, ]1 W! O3 r
# Options FileInfo AuthConfig Limit. w: x* ]$ K. @) B* R1 V5 D
#
& ^5 Z/ `# x$ m+ f: G" Y3 yAllowOverride All
9 C, ^2 p: {0 R, W5 N; L5 D/ l6 M7 I  t4 O3 E$ `& J' L0 F
在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。
4 J% U& }. F) G" ~
8 G& ~* y+ V7 a' TApache Rewrite模块的简单应用:
6 B6 m' r7 c" |, _6 w0 j2 z' r% ~Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。
( E: x4 G( C; `! J- r3 g. K  b5 f. |- j6 h
1、请求跳转
: e6 x! E; f/ F( r目的是如果请求为.jsp文件,则跳转至其它域名访问。# p& ^8 q: Q0 S& Z$ ~% O
例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页. d- q% o3 p4 d" q! ^$ ]) P+ u
注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。
  M! Z/ Q1 g# u. U& n修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容
9 W& t4 H5 K6 T
  1. RewriteEngine on
    , w9 Y$ Y2 ^/ b' ^. E
  2. #开启Rewrite模块2 s& Y4 R1 f" j5 t8 X2 U
  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为不区分大小写
; E7 U7 i/ y* v+ t2、域名跳转- I+ c/ j" _6 y# j  d4 S" G; p% e* ?
如果请求为old.xp6.org下的所有URL,跳转至b.7 o& Y4 F' J5 N; |6 C; F
  1. RewriteEngine on
    0 v, r2 z) Z$ k3 E* u' M
  2. #开启Rewrite模块
    0 r( A5 N$ f3 h* G
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]: m6 P# i: }) i; z! \* q
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符
    * I9 p0 s$ J# ^* L4 s! M
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链- Q  }( @( p+ A
如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容4 q, P/ ?. q) H, ~' A
  1. RewriteEngine on
    , O4 s8 A8 m' `& l; t
  2. #开启Rewrite模块
    6 w# C, U4 G7 w2 D; u
  3. RewriteCond %{HTTP_REFERER} !^$( `+ a: q; y/ s, F7 d6 J: W- i" U
  4. #如果不是直接输入图片地址' A1 T8 R8 s: g0 m( b& _
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]5 R" w- i' I; p  X8 e# @2 o
  6. #且如果不是img.xp6.org所有子域名调用的) I. y) T3 T- q
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]
    1 Y, ]" }( K! O6 o; `
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]# u" Y; Q0 n% Q4 f2 u4 E
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]
    / v" O$ |% H' P
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]
    / i3 v; Y" {) x; ]2 V2 |( l( F5 m
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]
    ' M- ^2 Q+ r* C" V* r# W- I
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]5 U% ~1 c! I$ s# j& c! ]! S
  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文件
  p7 S3 e4 x9 S# A2 F3 i在Apache2\conf\httpd.conf 最后一行添加
/ }# Q2 H: _. {3 ]9 F
  1. RewriteEngine On  Y' E8 ?% z6 l& Z2 N/ E
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪
2 A! ]5 l: v8 E1 }6 W' X- ]( E  ?0 ?6 V4 }& _0 ?. P: C; G: B! b
Linux+Apache环境配置类似。+ A7 d1 V* G" o9 h

# ^, g0 G7 d# I' w8 W% r
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

QQ|小黑屋|手机版|Archiver|虾皮社区 ( 鲁ICP备13006813号-1 ) 鲁公网安备 37021102000261号
返回顶部 返回列表