搜索
查看: 12563|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2; R, h4 P- a: V, H6 s, K
$ l' w" Q% n! j2 L4 J. ~% C
加载Rewrite模块:5 Y. c" v) Z% [( G2 P5 r
在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。
% r1 [3 y, r4 u1 }7 r% X- a! f7 `! [3 Y/ {" c6 ?9 `6 P
允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):% d7 C% l% C- Z$ @3 {5 l

. R& ?: U# P. B# AllowOverride controls what directives may be placed in .htaccess files., @' ~' R; G7 z5 D: }- g
# It can be “All”, “None”, or any combination of the keywords:
. K  O4 V- S- V& W2 z# Options FileInfo AuthConfig Limit
5 N1 X3 W/ |$ a#+ P% Q; g" l; m0 z$ Y: k, `' j
AllowOverride All
  v0 o; b' G, R; W* z( O
9 d: J: Y" K0 D在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。* @7 s" b" @/ X5 ?) v

8 i# D7 f; l0 R8 U. MApache Rewrite模块的简单应用:: T8 _0 C0 {+ ~
Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。
. u: h  B1 D" S+ T
- ]0 ~; v6 t6 F. Y" C1、请求跳转
0 w5 I# a. Q  `7 K* M目的是如果请求为.jsp文件,则跳转至其它域名访问。
8 D! d. H# E6 S: N5 w0 Z6 f例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页
  F6 z3 o9 \. N6 U& d( R注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。3 j0 p2 R- ~4 F- t
修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容& N* ]& f1 }& m" e3 q" P
  1. RewriteEngine on
    " h9 a) k: M! k3 ^9 L  e: ~
  2. #开启Rewrite模块
    8 G8 q& L0 Q& P
  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为不区分大小写
$ {* d/ c' j8 P+ `7 x2、域名跳转1 f/ w. r" y0 U" R
如果请求为old.xp6.org下的所有URL,跳转至b.$ B1 D; d) Q5 \! R/ g- j
  1. RewriteEngine on( |3 q% T" Q5 ~+ M' j7 \
  2. #开启Rewrite模块
    $ d: ?: H( C) d7 G: Q4 ~
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]2 [9 A1 m# s' N! X' J
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符
    ! d2 B  z! h8 a
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链
/ r+ ^4 i+ @/ V如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容1 f: l8 e, F2 _1 X/ i' `
  1. RewriteEngine on5 y& [  L% h/ j2 W# E4 J" S
  2. #开启Rewrite模块
    6 |) G3 Q; [0 q) Q' L. Z0 k
  3. RewriteCond %{HTTP_REFERER} !^$
    6 w* r/ a# I4 M& O0 Z
  4. #如果不是直接输入图片地址
    7 l+ G. |7 c. T* w  H# U/ M( V
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]
    5 u1 L) ?8 U4 q9 H
  6. #且如果不是img.xp6.org所有子域名调用的
    . A, e/ ~6 e/ v3 o  {2 w
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]
    4 i9 R  S6 W4 }) U0 s( o
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]
    7 b/ e" L1 Z& P. p0 m
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]
    3 S" U  a5 T9 L- f
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]2 c! y4 T' f( P7 F; f* L
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]  k3 F: W9 K  E- K, {$ r
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]: {; @( l  X7 a, X( B
  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文件- t; x, b( F) K  n0 B/ p
在Apache2\conf\httpd.conf 最后一行添加
6 }: d  O/ z# {) g* _
  1. RewriteEngine On
    , Y6 Q! A; T- _! u8 V9 |
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪
8 ]4 Z; M% \, s3 h' L
" o/ h& ]( O1 g" YLinux+Apache环境配置类似。" ~0 K7 i0 b' `% Q: K

  |2 N  d6 \3 f6 q' v% M
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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