搜索
查看: 12312|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2' k0 @, s( G( K2 W* R, ^% t
" H9 r, \* g$ h" D  Q% ~
加载Rewrite模块:1 H. m& q- J# i; a8 ^3 ?! p
在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。
. H: _8 b+ t, z1 V2 p; M7 @
( q& D; a& t- {允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):
6 a) a* Y) j- t& K8 r
! z) d8 E3 \9 J4 T5 O( I* F- x' n# AllowOverride controls what directives may be placed in .htaccess files.& u& J$ ~3 e3 A5 w# H3 K  s
# It can be “All”, “None”, or any combination of the keywords:: h2 K, o: _3 ?4 A) x! t4 b3 p6 F; r  p0 X
# Options FileInfo AuthConfig Limit- d( G- |/ c: }- N8 W
#, P. A$ d0 B2 Q  t
AllowOverride All
. v9 B9 R& q, v: T' G, G$ f3 c6 T& \3 U9 \/ ?( Y
在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。
  b% I1 u7 `. d+ N0 s- ]2 j$ M
; O; b4 G4 H8 M5 m' V3 `& n) ~, Q( |Apache Rewrite模块的简单应用:
' G5 Z1 C8 P# n0 J0 {& kRewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。
8 ~6 _. U. v$ y' o* }5 }' j& Y2 f6 h$ H9 W8 t1 N- t) R* p  e! h# v
1、请求跳转6 Q  |3 ?( U6 P& I, i2 _
目的是如果请求为.jsp文件,则跳转至其它域名访问。/ |2 u" \, A3 J
例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页
) e9 o% c" o( v# p- `7 ^注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。0 `* ^$ h5 S1 C0 v
修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容
1 s" }# m" v& a* d6 a
  1. RewriteEngine on. n2 C8 ?$ _4 J; B0 Y
  2. #开启Rewrite模块
    ( h1 I6 ]7 P1 u$ M7 h6 f7 e
  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为不区分大小写6 z% g- }3 D# u: a  x7 \! v
2、域名跳转
1 C1 `# \1 f# Z* ?- \$ Q如果请求为old.xp6.org下的所有URL,跳转至b.
( K6 Q$ f  m" {* t& Y+ R
  1. RewriteEngine on( P/ d* Z! v2 X1 I
  2. #开启Rewrite模块
    3 w0 t; t  @% |1 X% E
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]
    * O/ U  j/ l) k4 m7 l5 }
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符
    : g4 I4 u( B( k  g$ e
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链
" v; G. N4 e9 c/ r2 ?3 P: c# G如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容' s) N: X# m+ L. K- o
  1. RewriteEngine on
    9 j7 z5 P) l0 k0 m* G6 _8 Y
  2. #开启Rewrite模块5 t! i, z, k5 J. L1 J2 r# U
  3. RewriteCond %{HTTP_REFERER} !^$
    3 q& J# e  g( r, P3 w9 F
  4. #如果不是直接输入图片地址# h4 C9 A/ Y/ K' e4 M( ^6 R, D
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]2 i5 O1 h. O. [
  6. #且如果不是img.xp6.org所有子域名调用的
    6 K5 [& }9 B/ d  V2 ?; W
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]0 @: M7 l, y) C
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]  ]) B: Q2 F+ a
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]
    0 _0 B6 A5 h$ Y1 R4 I
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]; R; a$ ^& U2 `) g4 F
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]7 j9 [  X! |: N! _  c- m2 \% t
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]) X& V- }% z$ r
  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文件
0 J1 O. b7 H8 o在Apache2\conf\httpd.conf 最后一行添加9 a" ?3 q+ x, w* n2 l3 q
  1. RewriteEngine On
    # ~1 V- L! p4 [. ?9 f% o
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪4 D& J$ Z& X' C
3 d9 W! s# Z6 u# j$ a1 u" {
Linux+Apache环境配置类似。/ n% z% S; [- w( `0 h+ f, m+ ~' x* p
3 [" s/ d$ O* E/ M
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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