搜索
查看: 11725|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2# t" F+ n0 z2 \) g4 _% [2 j. Y

- C7 ]7 U# e% d; K/ O5 x加载Rewrite模块:
$ O$ R, D2 t/ L- R& e在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。
3 s- y- |5 k- |* U* |
  |& J+ g3 n8 d3 E  ?! P允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):
: T5 k6 T2 {2 b: P# Y
" [4 a" ~2 B, P4 ]8 f7 n+ m# AllowOverride controls what directives may be placed in .htaccess files.
/ [# |9 r7 D- F  F! ]# It can be “All”, “None”, or any combination of the keywords:7 w+ R% L( M: F- ~/ A" h
# Options FileInfo AuthConfig Limit
6 D$ {" _- N. ^#; |/ e- Z# ~! S. @5 E* s
AllowOverride All
2 T' x" T  h$ S- p. C: k" y) F0 a! N/ c& m4 q0 l! C' p& f1 n
在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。1 m% I# P2 d4 n; ]0 J# e
, C+ p9 c8 b/ V% U9 ^: Q
Apache Rewrite模块的简单应用:% r# I1 w# N! I
Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。
1 |+ @! D7 L0 L# z) M
( S% [2 i/ q8 B6 p2 S8 f0 }$ Q1、请求跳转. m, a* \6 S5 n7 ?
目的是如果请求为.jsp文件,则跳转至其它域名访问。
- ?7 n7 n1 m! S, G5 g; o例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页
* |( U+ ~& y0 R5 w0 _6 k. M" F; w注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。
- P5 H2 E1 U/ D4 b修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容% w  @+ M( a. T5 l% A9 B
  1. RewriteEngine on
    , u: |" c  X+ a' M" Z
  2. #开启Rewrite模块4 G1 @7 q- Y0 o" r2 {! x
  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为不区分大小写
# @3 y- g: u: O0 M* D. V2、域名跳转0 i( C& B  `/ H/ s
如果请求为old.xp6.org下的所有URL,跳转至b.6 G) t% Q5 _0 B) ]6 H
  1. RewriteEngine on
    ( \$ ?9 \' G' ?8 T- g
  2. #开启Rewrite模块4 x. [7 ^% {9 g
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]
    . A( b' I' t. t+ L* |
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符
    2 }" N0 p2 k6 R: ^  Q: e
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链
" _6 M2 A9 p4 h3 V6 q如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容
+ ~" ^% t# M1 I% Z# b3 a
  1. RewriteEngine on
    5 Q+ _  g' L( A& A) V  Q
  2. #开启Rewrite模块8 W! x* K* i1 q- E# K# @$ M5 l
  3. RewriteCond %{HTTP_REFERER} !^$9 V, o+ M! {; S1 P
  4. #如果不是直接输入图片地址
    ) L+ R! ?4 h% s# v
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]
    8 m' C5 D* w5 F* t0 {/ u0 A$ _
  6. #且如果不是img.xp6.org所有子域名调用的
    3 A2 t  W9 ^6 ~# q/ P6 \6 q
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]9 f* M' M9 B9 j; R' K! e
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]
    & h) ^4 N5 r4 L6 N. K4 v
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]
    " |: I* Y7 F2 ?* {9 F6 W
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]9 x" z* \. G  c9 _) e
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]6 [/ t9 v7 z# ^! T
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
    3 W4 v% P2 N. {/ v: e
  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文件% A) k# e2 Q2 U6 u: Z3 J8 C2 F
在Apache2\conf\httpd.conf 最后一行添加  R& z: [/ p0 O+ W$ u
  1. RewriteEngine On
    8 d7 _9 b* M, v& z+ d, U
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪# Z8 z, t7 v9 [4 P5 @

# G# Q6 m" \6 a* @4 TLinux+Apache环境配置类似。
( p: x2 r( t( z" K5 Q0 B# D. I
* ~( ?9 I: {1 ]2 |: I
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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