搜索
查看: 11577|回复: 1

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

[复制链接]
发表于 2019-5-13 09:29:10 | 显示全部楼层 |阅读模式
环境:系统 Windows+Apache 2.2! L& o% i" J. }+ e

" O+ L" L8 j; g. A加载Rewrite模块:1 |# w0 v1 j* i9 C5 U4 s
在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”,或添加这句。& K+ g% I  F% w  h; [

5 \: i& w( b& H$ p$ x) `* a允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):
8 u; j, ?8 t8 M
& D6 l( Z$ {: t$ W5 h# AllowOverride controls what directives may be placed in .htaccess files.% T! u- P# `& u, N; n3 p! V
# It can be “All”, “None”, or any combination of the keywords:+ R) L( p) f1 C  Z) Z, i& t
# Options FileInfo AuthConfig Limit
& `* i2 [1 y# W. ^/ F#
3 Q+ D5 S5 g% yAllowOverride All
5 |( O( t. V6 a' Z* m7 K& i2 y5 B! w% u, b1 ]+ Q  q& g& ?/ \
在Windows系统下不能直接创建“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。或者,系统设置显示扩展文件名,打开记事本另存为.htaccess文件,文件类型,所有文件。
5 o8 P. Y; V" j/ G2 O! v! Z8 I+ P* p* \1 S- @" O" o/ D
Apache Rewrite模块的简单应用:/ q4 \# S) l; Z- @3 Z" o
Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。( A# b) u0 f1 U
( q- I  i6 {! l. ]2 a% Z2 Z' u9 C
1、请求跳转+ N7 X6 W$ N3 E6 Z; r( T
目的是如果请求为.jsp文件,则跳转至其它域名访问。
  R7 G6 z4 d3 W* _2 O例如:访问www.xp6.org/a.php跳转至b.xp6.org/b.php网页,访问www.xp6.org/news/index.php跳转至b.xp6.org/news/index.php网页3 L( }# T) W5 t# ^. E) ^' c5 O
注意:不是使用HTML技术中的meta或者javascript方式,因为www.xp6.org/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。
  V6 t5 Q0 p# i5 U, ~# {4 K# ~修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容! C  Z* J; v0 L! ?1 U
  1. RewriteEngine on
    . N9 }. C4 a* J- G5 L! Z8 R
  2. #开启Rewrite模块
    , [, u5 M; x! ~3 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为不区分大小写
9 {* M# I. m( K( u+ S2、域名跳转' O' ^5 P$ k) C8 P) m% _4 r
如果请求为old.xp6.org下的所有URL,跳转至b./ n; j% D; a7 c6 t
  1. RewriteEngine on
    3 a) ~1 n4 {# s4 g
  2. #开启Rewrite模块0 O' q* F1 {# T# O# J
  3. RewriteCond %{REMOTE_HOST} ^old.xp6.org$ [NC]
    8 ^6 ]1 B/ P7 B2 x7 X- }5 O6 ?; m+ {
  4. #针对host为old.xp6.org的主机做处理,^为开始字符,$为结尾字符
    , [% \/ G& p: l; d( ~' Q
  5. RewriteRule (.*) http://b.xp6.org/$1 [R=301,L,NC]
复制代码
3、防盗链/ N2 H# V# b% T; u) R* M# c0 C
如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容
7 m. K3 e8 q0 f- F. a; d! E& o- j$ E
  1. RewriteEngine on% z2 g. j5 u2 H( @; y6 G
  2. #开启Rewrite模块7 {% Q; {* w9 f2 E/ U* T$ P4 A
  3. RewriteCond %{HTTP_REFERER} !^$
    9 y% z( d4 X" o3 z" B
  4. #如果不是直接输入图片地址
    ( M. J" `. u+ j" t, Y
  5. RewriteCond %{HTTP_REFERER} !img.xp6.org$ [NC]
      C/ x0 u$ X' `# V9 {
  6. #且如果不是img.xp6.org所有子域名调用的
    * V" q/ r6 G$ k& `7 w- w6 k
  7. RewriteCond %{HTTP_REFERER} !img.xp6.org/(.*)$ [NC]
    + e( f, o" P/ w* {; y# Y6 Q
  8. RewriteCond %{HTTP_REFERER} !qq.com [NC]
    3 S, D  a2 S1 E8 s' {; e
  9. RewriteCond %{HTTP_REFERER} !google.com [NC]
    " e8 g$ I: }9 K. T; C
  10. RewriteCond %{HTTP_REFERER} !google.cn [NC]
    3 ^- ^9 ?9 J/ `& u" T2 ^+ T: Z
  11. RewriteCond %{HTTP_REFERER} !baidu.com [NC]
    ' {* E' P" c2 J
  12. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]; X9 S! X7 j$ E: [! e
  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 }. P. s/ X0 s9 Z1 H在Apache2\conf\httpd.conf 最后一行添加9 @% _  q, n+ h- [  Z9 O
  1. RewriteEngine On* ~% N# z! J, U) A- M9 W8 R
  2. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
复制代码
重启Apache,登陆后台开启全伪
& M. {3 N6 A& j8 B
7 Y% i5 v# o+ BLinux+Apache环境配置类似。
- ~7 c  ~- V$ P4 u  G) n9 p4 _; H% p4 c- G4 R) z! M
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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