帖子
查看: 11491|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2
. v5 y0 `, v7 [: U8 U# ^5 p# U2 u4 d  W" M& W! X
加载Rewrite模块:; r! f2 H$ R/ v( p6 e0 ]
在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。0 B" x' B$ P7 u( H* }$ S: }% ?0 M

7 c4 I# \4 Q! |, g2 V允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):
6 K6 y: t' ^% D0 d% G
4 X# m* B" U0 P+ d- ?- S8 v% s4 e, t# AllowOverride controls what directives may be placed in .htaccess files.6 _% q" m, O# r9 G. w9 V0 g& D
# It can be “All”, “None”, or any combination of the keywords:
9 R6 W9 v6 `( o# N+ |# Options FileInfo AuthConfig Limit/ ?. ^# v  z. W# @* d+ x$ K
#- `  k) y3 U. M
AllowOverride All
, c- U4 v, p( h/ _8 f# P8 d- m* m5 a' z- x, _' J
在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。
8 r9 ~! _6 j2 X
- d, W0 p8 ?. b6 k% vApache Rewrite模块的简单应用:/ I% Y3 c, h7 {% l- x- \0 C
Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。
' A1 |+ Q% l; h) ^9 k* c2 u
5 X  U' G. v6 D% i% ~& C* Y1、请求跳转$ i' p! w0 i( A+ F' M8 R
目的是如果请求为.jsp文件,则跳转至其它域名访问。  P. k* X$ G1 s5 I
例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页# i- A- s( u  G0 c) @$ s
注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。- U* ]- F, i9 v; q( _! I  i
修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容, _$ G8 e0 S7 k( V9 p
  1. RewriteEngine on
    : {) L. f% B) a6 r
  2. #开启Rewrite模块
    * w; n/ A" ^4 l  y7 Y
  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为不区分大小写; Q/ i- C( l2 c$ F; h% |
2、域名跳转! p: N) e( v  x
如果请求为old.xp6.org下的所有URL,跳转至b.4 i& ]9 I9 u/ q' i4 R1 {
  1. RewriteEngine on$ X) x0 m. M6 A( W
  2. #开启Rewrite模块2 |& @8 [& U3 U! Y3 ~5 M9 H5 Z
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]2 v' Z# Z7 }- \
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符
    , I) U* v- i( c) Z$ o0 d
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链
7 ~6 T3 P! k4 b: F如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容3 \$ Z" f5 K8 P( |% b& s
  1. RewriteEngine on
    ( ?; M" {6 v4 W
  2. #开启Rewrite模块
    & Y* Z5 u0 @0 h' @3 A7 L
  3. RewriteCond %{HTTP_REFERER} !^$
    ( r4 P! d3 s0 i$ e/ p( ]1 k
  4. #如果不是直接输入图片地址
    ; I. E* e/ g& l5 |% Y( m% @& f
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]3 p7 `7 f7 p: J6 [" x& v
  6. #且如果不是img.xp6.org所有子域名调用的5 C( t! p: v- [, `
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]
      B4 r$ N/ W9 F9 D2 f3 e( _
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]. i- A: B: p; ~+ O6 t8 c
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]; E/ {. L  B3 q& N$ I9 U/ p
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]
    4 U  |: x0 Q1 s. c" k! q
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]
    8 n( t1 s8 U% y0 C$ C
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
    8 i4 ?+ F: L( D+ i7 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文件
, v& m# K; o4 u- [在Apache2\conf\httpd.conf 最后一行添加
7 u! i( H/ l0 O2 J3 F. x
  1. RewriteEngine On( }9 t  D) F3 J3 C) a/ w
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪
2 _3 B, o& i$ Q2 V! R; ^
. r  F! Q/ p$ g- t/ X: FLinux+Apache环境配置类似。
- G2 r7 t6 `2 C1 e: i7 o7 N3 R$ \0 P; l
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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