文章内容包含以下几个方面
- 伪静态是相对真实静态来讲的,
- 伪静态只是改变了URL的表现形式,实际上还是动态页面
- 伪静态有了真静态一样的SEO什么是伪静态和重定向?
- 通过各种方法将各种网络请求重新定个方向转到其它位置(分为内部和外部)
- http标准协议中的3xx ( 主要用302 , 303 )
- 用重定向技术来实现伪静态.htaccess性能问题
- I/O消耗
- 开启后访问页面,要查找所有.上级的目录中的.htaccess文件
- 可以被主配置文件替代mod_rewrite简介
- Apache的URL操作模块
- 包含RewriteBase RewriteRule、 RewriteCond、RewriteMapLogLevel操作示范
- 设置LogLevel alert rewrite:trace8 ( 1~8 )生产模式不要大于trace2
- 查看apache\_ error.log日志文件
- 只能在conf文件中设置,不能在.htaccessRewriteRule语法说明
- RewriteRule模式匹配替换的URL [flags]
- 模式匹配支持Perl格式的正则表达式、和rewrite的变量
- 替换的URL支持模式匹配的结果和rewrite变量
- 多个flag用逗号隔开[R= 302,C]实现伪静态SEO的实践方法实现防盗链、限制迅雷、文件访问控制等的重定向常规应用实现动态镜像、集群网站、负载均衡等重定向高级应用
1、RewriteRule flag 参数说明R=301永久 有利于seo 评分给新地址R=302临时 默认302 重定向 给新地址新的评分 seo作弊
RewriteEngine on
RewriteRule ^(.*)\.htm$ /$1.html [R=301]
RewriteEngine on
RewriteRule ^(.*)\.htm$ /$1.html [C]
RewriteRule ^(.*)\.html$ /$1.php
RewriteEngine on
RewriteRule ^(.*) first.php?url=$1 [L]
RewriteRule ^(.*) second.php?url=$1
RewriteEngine on
RewriteRule ^(.*)\.htm /index.html#$1 [R,NE]
RewriteEngine on
RewriteRule ^test/(.*)\.htm /tmp/$1.htm [NC]
RewriteEngine on
RewriteRule ^h/.*$ - [G]
RewriteEngine on
RewriteRule ^pre/(.*)$ /pre.php?url=$1 [R,QSA]
RewriteEngine on
RewriteBase /test
RewriteRule ^(.*)\.htm$ $1.html [R]
RewriteEngine on
RewriteCond $1 "test"
RewriteRule ^(.*)\.htm $1.html
RewriteEngine on
RewriteCond %{HTTP_HOST} "127.0.0.1"
RewriteRule ^(.*)\.htm http://localhost/$1.html [R=301]
RewriteEngine on
RewriteCond %{HTTP_HOST} "127.0.0.(.*)"
RewriteCond %1 "2"
RewriteRule ^(.*)\.htm http://localhost/$1.html [R]
RewriteEngine on
RewriteCond E:/phpStudy -d [OR]
RewriteCond E:/phpStudy1 -d
RewriteRule ^(.*)\.htm $1.html
RewriteMap pages txt:e:/map.txt
test1 pagetest1
test2 pagetest2
RewriteEngine on
RewriteRule ^(.*)\.shtml ${pages:$1}
http://127.0.0.1/test2.shtml
RewriteMap dirs rnd:e:/map1.txt
URL1 s1|s2|s3
URL2 w1|w2
RewriteEngine on
RewriteRule ^(.*)\.shtml /${dirs:$1|root}/$1.php
.匹配任意字符
+重复匹配1到多个
*匹配0到多个
^开始
$结束
?可选
[一个多个字母]
[^排除这些内容]
|或者
取值$1~$N来访问
1、防盗链
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !localhost [NC]
RewriteRule \.(gif|jpg|png)$ - [F,NC]
2、限制访问者的IP列表
RewriteMap hosts-deny txt:e:/hosts.deny
192.168.1.73 deny
RewriteEngine on
RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} deny [OR]
RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} deny
RewriteRule ^ - [F]
3、限制迅雷(多线程下载访问)迅雷输入:about://version/
RewriteCond %{HTTP_USER_AGENT} 67.0.3396.99 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} AppleWebKit [NC]
RewriteRule . aa.html
location ~* \.(gifljpg|png|swflv)$ {
root html
valid_ referers none blocked *.nginx.cn;
if ($invalid referer) {
rewrite ^/ www.nginx.cn
#return 404;
}
}
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WWW Redirect" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^test.com$" />
</conditions>
<action type="Redirect" url="http://www.test.com/{R:0}"
redirectType=“Permanent” />
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
伪静态配置、重定向相关文章
一、Apache的伪静态配置 1、网站根目录下需要有 .htaccess 文件,没有则自己创建一个,内容如下:&l...