搜索
查看: 12165|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2, R& F/ v, h$ X5 o7 @

% u3 t% [) ~5 k+ x" G, x6 Q* D加载Rewrite模块:! k% U6 T6 S8 v, Y7 {
在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。, g; h! D0 [* l+ T& e

, `- j$ L$ a5 `! j9 P允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):
* C: p' Z, o6 r/ \6 G) c# c
2 Y) m9 H9 A7 s0 ~! u# AllowOverride controls what directives may be placed in .htaccess files.2 b$ A% \9 T; j- f; d( n
# It can be “All”, “None”, or any combination of the keywords:
5 O- S0 a) p/ S0 p' B1 d3 b/ @3 z# Options FileInfo AuthConfig Limit
, [8 T- l/ v5 [1 W8 ~#+ ^3 x7 ?" L4 T' a( x$ n2 d1 M
AllowOverride All
9 |1 V0 J1 I2 \, \$ ]
4 Q7 i; l- |0 _. r在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。
  u+ e+ ]' |$ ~# @+ f. Y2 }, _: }% F
Apache Rewrite模块的简单应用:
% s7 i& a4 F) F( bRewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。
( [3 i0 i( e, A( A; C
: W2 p9 H$ L* q4 ~1、请求跳转
6 W3 V- K  P$ R. ]1 N目的是如果请求为.jsp文件,则跳转至其它域名访问。  ]/ A' z' V3 \" o# \
例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页& [2 r6 H/ `. |- |: ~1 Y" N( L
注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。* D6 P7 y4 d/ G! C, Z7 B8 y
修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容$ V) \/ g5 q  {, b* [! _1 g# w; Q) X
  1. RewriteEngine on: c2 p1 {) G4 D# v& W/ _
  2. #开启Rewrite模块: W$ a2 r6 F9 s. i
  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为不区分大小写
+ Z# X) ^  r/ A! O9 F2、域名跳转5 s/ d+ |8 N; A5 a* B1 _6 k2 x
如果请求为old.xp6.org下的所有URL,跳转至b." |5 _* O" R; I6 n2 {. `$ p) O: o
  1. RewriteEngine on! x: k; t& ?/ {( q" z6 s; Q, |7 I
  2. #开启Rewrite模块
    6 s" |" r! u* P3 i$ l; h. f
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]' J/ b2 u4 b( v9 I! }0 D8 m8 n
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符
    ' {4 X8 ]  d  [, N! T5 x
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链
2 k1 l/ M0 \% \+ ~* ~如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容8 Z1 L: A/ L- D! j
  1. RewriteEngine on2 G  j( A) S6 |' V
  2. #开启Rewrite模块
    ( Q4 \/ [- O; S# i, X$ ?
  3. RewriteCond %{HTTP_REFERER} !^$
    6 J4 p) Y& {: n8 h- W" I
  4. #如果不是直接输入图片地址6 j, \& J; s( [0 I, k0 J; p4 E
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]/ |3 c4 P. _* h" ]
  6. #且如果不是img.xp6.org所有子域名调用的
    . \; p+ e: g) H0 L4 d' O- D
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]4 G+ j5 {3 C# K& s; e. y* C
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]" Y, f  u3 k6 v" S  b& B
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]
    ) E9 i0 o& @! S0 B1 W
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]! G, N  O6 T+ ~
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]+ L) _/ t9 L' @. z4 ~4 q" ]$ Z7 l
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
    5 @+ c# @2 [: J) _" ^$ ]. x
  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文件
: J$ {0 ^/ V: J. E* i在Apache2\conf\httpd.conf 最后一行添加
2 U5 A8 o9 y) m) M6 \# Q& r4 L; J; R
  1. RewriteEngine On
    0 E! h/ |: x* Y5 f* s9 B$ D) G
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪# {" Y4 t' G+ }( K* }1 q
& H% i# R) i4 W& i) T# c; H( v
Linux+Apache环境配置类似。8 h7 h5 ^; I2 C0 `. y
7 x; G  ]& y9 i# k4 ~  L
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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