搜索
查看: 11874|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2
  h" m4 W  H- _# }7 S1 W, z7 {' \! K2 H
加载Rewrite模块:; m$ C/ p8 {; H
在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。
3 e7 ?' j" w, j/ r" [% Q% m. m+ V4 l: {5 o8 L7 Z
允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):
2 T" ]5 Z' c0 @( m' M( p! D! T
& O: I4 i) E$ |: u# AllowOverride controls what directives may be placed in .htaccess files./ E- n, b. P" Z; p
# It can be “All”, “None”, or any combination of the keywords:
$ n, R0 b/ t3 n4 v* }6 d( g# Options FileInfo AuthConfig Limit
/ _7 H6 w; i& N/ E#
$ J$ o+ R0 @5 IAllowOverride All- W" h) V" i$ s

6 b' [% U3 {, ~- }0 f1 g! G, M在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。/ @" g, k, y. y( g3 E8 F
9 Y' r& e) d% Z) k  D& z' I$ o
Apache Rewrite模块的简单应用:& v( p$ i" ~  c5 ]
Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。. Z5 D$ |" c5 d" ?/ x# M
5 T! G( R# r7 g: m  Y. a+ P
1、请求跳转1 q1 P: s, T( F1 U5 A6 K( k  P
目的是如果请求为.jsp文件,则跳转至其它域名访问。
9 ^+ s4 n6 s2 K2 W) v$ _, j7 |例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页
( c( |$ I4 e+ r; ?! I8 q& J& m) S注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。
9 \- r- \8 l) A, O+ {修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容
4 p4 p( G' R: N  e8 {+ @
  1. RewriteEngine on- ~# p7 h) Y. C
  2. #开启Rewrite模块
    8 i: A# }4 T7 B' r
  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为不区分大小写0 i  O8 f/ [$ M/ Z' {( \
2、域名跳转
0 N/ K& h& K- J. I1 k4 F; I) n如果请求为old.xp6.org下的所有URL,跳转至b./ S+ U7 c" C+ v; Z
  1. RewriteEngine on
    5 X: d1 h! J3 J& r1 x# ~
  2. #开启Rewrite模块
    : f3 r1 T$ l- c0 ^* v
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]8 L  i8 c& A' X/ f9 I1 s6 D. F8 G
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符: o8 \, N! q9 z1 H9 \
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链4 w; |, w9 m. G- ~; N: c
如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容
5 }, d$ E4 h9 J$ [+ x# {& l* C
  1. RewriteEngine on  a/ k9 f* A/ F) V
  2. #开启Rewrite模块0 f; M. z& n$ m
  3. RewriteCond %{HTTP_REFERER} !^$
    8 a# H; {; Q5 D7 P) H$ i% k) }
  4. #如果不是直接输入图片地址$ Z7 u* o9 D4 ]+ P( `
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]7 g3 [8 Z; h, H4 K  E& u
  6. #且如果不是img.xp6.org所有子域名调用的
    ) K5 ^7 `+ c( M8 _. f
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]
    : P6 X* u  H# O$ o
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]
    1 R$ p5 B" g0 Q. D
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]$ t  c  q" ~- ?* @% t7 v( S
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]
    ! J9 G- ~5 D2 W/ [! p! X
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]
    9 o  v" C1 f6 Z5 J  J; K+ I
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
    : P6 w/ U! P  ^* E# Z  L" }
  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文件
1 c* g4 q% N, K( D8 j在Apache2\conf\httpd.conf 最后一行添加4 w# L9 {; O7 A+ g7 Y8 k- H( @" u! W
  1. RewriteEngine On
    ! n/ z/ V! w% S# s
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪  R5 _, R6 T) q

& h4 x3 [0 P5 w& z7 v1 d+ I5 ]Linux+Apache环境配置类似。: E+ h0 X( N: e7 O* {& A
' z. [1 s9 K: U4 q  [
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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