• WAP手机版 RSS订阅 加入收藏  设为首页
服务器教程

httpd.ini和.htaccess实现301和伪静态详解

时间:2014/3/22 12:04:15   作者:新站长   来源:新站长网   阅读:833   评论:0
内容摘要:了解httpd.ini和.htaccess:httpd.ini和.htaccess分别是IIS服务器和Apache服务器上的分布式配置文件,用它们可以实现301和伪静态。301有固定的格式,相对来说比较容易。例如,将不带www的域名301到带www的域名上,如果你的空间是全能...

了解httpd.ini和.htaccess:
httpd.ini和.htaccess分别是IIS服务器和Apache服务器上的分布式配置文件,用它们可以实现301和伪静态。

301有固定的格式,相对来说比较容易。例如,将不带www的域名301到带www的域名上,如果你的空间是全能空间,也就是ASP和PHP都支持的,或者只支持ASP的,那么,新建一个记事本文件,重命名为httpd.ini,然后打开,向里面写入:
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^xxx\.com$
RewriteRule (.*) http\://www.xxx\.com$1 [I,RP]

把xxx.com替换成你的域名,保存,上传到空间的跟目录

如果你的空间是Linux系统的,通常只支持PHP,是在Apache服务器下运行的,这种情况就要把httpd.ini换成.htaccess,里面的内容换成:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^xxx.com [NC]
RewriteRule ^(.*)$ http://www.xxx.com/$1 [L,R=301]

同样是把xxx.com替换成你的域名,保存,上传到空间的跟目录


伪静态其实就是重写URL路径,要复杂一些,因为需要用到正则表达式。举例说明:将http://www.xxx.com/?id=10重写到http://www.xxx.com/id10.html,httpd.ini中的写法为(什么时候用httpd.ini什么时候用.htaccess跟上面一样):
[ISAPI_Rewrite]
RewriteRule ^/id([0-9]+)\.html /index\.asp\?id=$1 [L]

其中,“[0-9]+”为正则表达式,意思是匹配所有由从0到9任意数字组成的任意长度的字符串,也就是匹配“id=”后边的参数,如果参数中不光有0到9的数字,则改为:[0-9,a-z]+即可。如果有多个参数,如http://www.xxx.com/?a=10&b=20,写法为:
[ISAPI_Rewrite]
RewriteRule ^/a-([0-9]+)-b-([0-9]+)\.html /index\.asp\?a=$1&b=$2 [L]

其中,$1和$2代表前面的([0-9]+),$1对应第一个([0-9]+)$2对应第二个([0-9]+)。这样一来,伪静态后的URL就变成了http://www.xxx.com/a-10-b-20.html。

相信你已经明白了吧!.htaccess中的写法相似,同样以将http://www.xxx.com/?id=10重写到http://www.xxx.com/id10.html为例:
RewriteEngine on
RewriteRule ^id([0-9]*).html$ index.php?id=$1 [L]

注意:httpd.ini中的[ISAPI_Rewrite]和.htaccess中的RewriteEngine on是必须要写的,不要问我为什么,这是语法。如果你既要设置301又要设置伪静态,那就不用写[ISAPI_Rewrite]和RewriteEngine on了,因为301的代码中也有这句代码,将伪静态的代码放到301的下面就行了。


标签:配置文件 记事本 服务器 Linux 空间 
相关评论
诚信网站 备案信息 网警110 不良信息举报 网络安全监察 QQ站长联盟安全认证 360安全认证网站
冀ICP备13003921号-1