欢迎您光临爱永设计官网!
电话图标 服务热线/微信:13436537174 QQ咨询:276583799

新闻资讯

news

主机屋WordPress用httpd.ini去除固定连接中index.php

发表日期:2014-01-08 文章作者:站点默认  浏览次数:13663 次

最近使用主机屋空间安装了wordpress,在使用固定连接中发现连接中带有index.php,自定义去除以后打不开页面,究其原因是主机屋的空间是windows主机,当我们用习惯了apache下的.htaccess的时候,很难想象windows主机上怎么实现它的强大功能。查询了些资料后发现可以使用httpd.ini文件来充当.htaccess文件在Linux主机空间的作用,不过要令你失望的是,httpd.ini的功能完全没有.htaccess那么强大,规则上没有那么丰富,细节上也有很大的不同。如果你在win主机上安装了wordpress,那么对付wordpress固定链接的设置将是一件令你头痛的事。

下面就把我总结的解决办法共享出来,希望能帮助更多的win主机使用者。

1、创建httpd.ini文件并上传到网站

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# Rules to ensure that normal content gets through
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /favicon.ico /favicon.ico [L]
RewriteRule /sitemap_baidu.xml /sitemap_baidu.xml [L]
RewriteRule /sitemap.html /sitemap.html [L]
RewriteRule /archivers/(.*) /archivers/$1 [L]
# For file-based wordpress content (i.e. theme), admin, etc.
RewriteRule /wp-(.*) /wp-$1 [L]
# For normal wordpress content, via index.php
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]

将上面的代码保存在一个名叫httpd.ini的文本文件中(用txt文件直接修改文件名),上传到web根目录,这样win主机下就能实现wordpress的固定链接了,并且你可以放心大胆的将后台设置固定链接中的“/index.php/”去除掉。

因为你做了RewriteRule /(.*) /index.php/$1 [L]的规定,所以当你访问/sitemap.xml实际上已经重写到/index.php/sitemap.xml了,自然没有该页面。如果你还不明白语句的意思,你可以到网上寻找.htaccess的教程方只其中奥妙。

2、解决?p=postid形式的文章短连接仍然可以访问的问题

因为$_GET优先级高于对url rewrite获得的值,因此在windows下IIS的httpd.ini里加入rewrite规则,后台permalink设置为默认后rewrite后友好地址仍可以访问。为了使网站更有利于SEO,减少不同网址却内容相同的情况,我们对文章页、分类页、单独页面做一下处理,在wordpress主题文件头部文件或能够被全局访问的文件内加入如下代码:

post_name;
header(‘HTTP/1.1 301 Moved Permanently’);
header(‘Location: ‘.bloginfo(‘url’).’/’.$id.’.html’);
exit();
}else if($_GET[‘cat’]){
$id=$_GET[‘cat’];
$cat=get_category($id);
$name=$cat->slug;
header(‘HTTP/1.1 301 Moved Permanently’);
header(‘Location: ‘.bloginfo(‘url’).’/category/’.$name.’/’);
exit();
}else if($_GET[‘tag’]){
$name=$_GET[‘tag’];
header(‘HTTP/1.1 301 Moved Permanently’);
header(‘Location: ‘.bloginfo(‘url’).’/tag/’.$name.’/’);
exit();
}
?>

这段代码根据网址中是否包含p,page_id,cat,tag参数进行跳转,进入其别名为网址的页面。你也可以根据这种方法,来跳转更多的页面。当然这只是简单的处理方法,如果你的要求不是很高,可以使用该方法,如果你使用了其他的插件导致网址中出现p等参数,则需要写更多的代码来排除它。

3、注意事项

在使用httpd.ini定义跳转规则的时候不支持中文,所以,使用的时候WP中定义关键字、页面或者是文章时候尽量加上英文或拼音的别名,保证URL路径中不出现中文。

最后一点,此方法在主机屋空间只适用于收费空间,因为免费空间不支持RewriteRule组件(伪静态)。

标签:
将文章分享到..
相关资讯
最新主题模板
随机新闻
最新网站案例
  • 更多 +我们能做什么

    致力于互联网品牌建设与网络营销,专业领域包括网站建设、网站模板、移动互联网营销、wordpress平台开发等,服务范围涵盖基础的域名服务、主机 服务;企业邮箱、云服务器、网络营销等应用服务,为不同类型的客户提供良好的互联网应用定制解决方案,帮助客户在新的全球化互联网环境中保持优势。

  • 更多 +网站模板优势

  • 更多 +关于爱永设计

    爱永设计工作室一直致力于品牌精美的网页设计、网页制作DIV+CSS布局、JS效果、精美网站模板、标志设计、专业仿站, 低廉的价格,真诚的服务,我们拥有全国各地的客户群体和各行业的成功案例。以一流的服务,出色的网页设计和制作能力,认真严谨的工作态度为客户提供优质满意的服务。期待与您的合作!

Copyright © 2013 - 2021 aysheji.com All Rights Reserved 爱永设计 版权所有
邮箱:aysheji@163.com 在线客服:276583799 模板演示地址:www.aymoban.com 备案号:京ICP备13060102号-3
服务内容: 网页设计 网站建设 网站制作 网站模板 婚庆网站模板 摄影网站 手机网站制作 自适应网站制作