搜索
查看: 8330|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2$ b( q2 \! r0 w' p: s

  C) C4 ~4 D$ e& E加载Rewrite模块:
% S3 T' ]/ i, h& c在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。
7 o. |! w, ]5 [6 b# g
7 @% y' W# ^  z& O7 S  ?, N允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):: j) X; o- ~1 l, g  M. ~; e

2 ?8 `  w  @  T. W. H) {) n5 I7 c7 d# AllowOverride controls what directives may be placed in .htaccess files.! H/ e; Y& [- Z
# It can be “All”, “None”, or any combination of the keywords:) T) R* `" a* A) h
# Options FileInfo AuthConfig Limit
& ^4 j, ^+ p" q9 f' }, X) K+ ]#4 e0 v, o5 V" H3 N
AllowOverride All( e' L& m' Z- E8 z9 n9 Y9 h* C
* z) e  e! `$ M/ Z5 d3 z/ o6 k
在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。, P" D9 b0 j' q( u
) r& m: i7 j' p! |8 x7 U/ C
Apache Rewrite模块的简单应用:  j2 ~" D6 l; y+ p+ y+ C
Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。
- I9 X0 \/ l# ^: G/ L* V2 x  l1 C
) |8 v+ C- t- D$ h1、请求跳转
4 m8 I, [& D% @3 y+ b1 v0 F. j# S目的是如果请求为.jsp文件,则跳转至其它域名访问。
6 A9 |( M: d$ j) [例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页
2 t3 B6 K8 v1 P& P. w' S注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。
+ N) G) @! S% D修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容
! `1 O- l: Y  m& P
  1. RewriteEngine on
    # V2 o. l3 E/ ^. l9 _
  2. #开启Rewrite模块9 w4 a4 D+ j: K. ^" f) 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为不区分大小写9 Q' J$ q+ X7 B; u) f; p; Q2 h
2、域名跳转
" Q" }' N* v) m' g% m# o如果请求为old.xp6.org下的所有URL,跳转至b.
9 @2 m' h; w% o2 r0 ^5 h1 P
  1. RewriteEngine on
    1 l# |2 W: B" n0 F0 Y
  2. #开启Rewrite模块
    6 C: t! x- v# s' I& j* T
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]9 x6 W! {9 j& d9 g3 F6 V
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符
    & x! E% V6 F( T7 B
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链
7 E- M% V" G* Y( {& L9 H# f; |6 |如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容
% d5 N, X% M6 ]' l& @2 x# [
  1. RewriteEngine on
    . f; S+ y- l/ [$ c2 a
  2. #开启Rewrite模块$ P, z. ?! L3 Q
  3. RewriteCond %{HTTP_REFERER} !^$
    " S# |. r4 [4 w% W2 X, O
  4. #如果不是直接输入图片地址8 V4 w6 ^% \, |2 W7 }+ R3 q% I
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]* ~' C( |2 g3 D; \7 B
  6. #且如果不是img.xp6.org所有子域名调用的
    1 F% B4 G/ A' _& c
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]  j$ `, Y- f& r" q
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]
    0 W+ X: P$ g2 u' k6 ~* y
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]* n$ ^, G' I% t' b9 V- I& R
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]4 A1 N3 g7 y$ y8 P1 c; }$ k) i
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]* E1 _0 ]: ~  _  }" `
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
    " i: d8 g( h) S5 j& E! @/ 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文件
& v2 [3 o' e; J  k( g8 X0 R4 S在Apache2\conf\httpd.conf 最后一行添加
; ]# n$ S! z7 P8 x
  1. RewriteEngine On
    6 I- I1 ]  m9 e' w& l+ Y
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪
' R  k6 C+ k/ t" h: h$ {
% C5 \) @. y; @: k7 n( K% t% r$ uLinux+Apache环境配置类似。- R' G9 o2 V3 e4 p; M- t
5 y$ `2 l% N# C% k1 \
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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