对于一个不懂程序的SEOER来做,更改代码方面是一件非常苦难的事情,当我们遇到301转向以及404页面的制作问题时,经常会困恼我们,这里我提供一个htaccess在线生成工具,这里有404页面链接生成、301转向生成以及htaccess常规设置问题,下面来说一下具体的说明以及使用方法。
htaccess是什么文件
htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
一般来说,htaccess文件需要放在网站的根目录下才能控制整个站点,并且在Linux系统中,需要把其权限设置为644以提高安全性。国内很多主机提供商都通过一定技术手段禁用了该文件,但是国外大多数空间商都是支持该文件的,可以极大的扩展虚拟主机的功能
.htaccess文件中的配置指令作用于.htaccess文件所在的目录及其所有子目录,但是很重要的、需要注意的是,其上级目录也可能会有.htaccess文件,而指令是按查找顺序依次生效的,所以一个特定目录下的.htaccess文件中的指令可能会覆盖其上级目录中的.htaccess文件中的指令,即子目录中的指令会覆盖父目录或者主配置文件中的指令。
在实际应用中,用户最常用其重定向功能与伪静态功能,比如把一个PHP的动态页面定义成一个HTML后缀的静态页面URL形式,这种形式在用户端完全无法看出来,因此,伪静态也是SEO的一种重要手段。常见的程序比如PHPwind、DedeCMS、Wordpress等都支持自动伪静态。
本文件应该由UTF-8编码,或者不添加BOM的Windows编码也可以。因此,不能使用Windows系统自带的记事本程序来编写Htaccess文件,常见的Notepad2等软件可以用来编写该文件。
如果手头没有编辑工具或者不方便下载,可以通过本站的“.htaccess制作生成编辑器”来自动处理这个文件。我们已经完全修正了这套程序中原来存在的很多错误,并且增加了很多使用的功能(比如直接下载),您可以放心使用。但由于服务器系统的不确定性,我们强烈建议您在上传之前,将原来的文件备份。本站不可能因使用这套程序造成的损失承担任何责任。
通过htaccess实现301重定向
在很多情况下,网站都需要进行301或302重定向,其中一个为永久重定向,一个为临时重定向。比如网站整个更换了域名,比如网站结构或目录发生了移动,比如需要将某个域名上的文件迁移到另外的域上等等。
有时候这种重定向对SEO或者PR值的传递是非常有效的。一般我们有几种途径制作一个htaccess文件,比如自己手动编辑,好处是非常灵活、功能强大,但坏处是很容易出错,我们强烈建议用本站的工具自动生成这个文件;另一种途径是通过空间里的控制面板进行自动编辑,这种方法比较死板,但不会因为人为原因出错,除非设置错了。
比如CPanel控制面板中,在Domain>Redirects里面,直接选择相应的选项即可。下面我们来详细讨论一下如何手动编辑这个htaccess文件:
务必注意:在编辑之前请备份原来的htaccess文件,以免造成损失。
1、出于SEO考虑,将kuphp.net重定向至www.kuphp.net。本站就使用了这种重定向的方法避免页面权重分散。
一旦选择了带WWW的为主域名,今后就不要随意更改,方法如下:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.kuphp.net$ [NC]
RewriteRule ^(.*)$ http://www.ssffx.com/$1 [L,R=301]
上面这一句话是从反面来写的:如果域名不是带WWW的,就统一301跳转到带WWW的域名中去
2、如果需要将域名从www.kuphp.net跳转到kuphp.net,则可以使用一下代码:
RewriteEngine On RewriteCond %{HTTP_HOST} !^kuphp.net$ [NC]
RewriteRule ^(.*)$ http://ssffx.com/$1 [L,R=301]
3、如果需要变更域名,即将老域名换成全新的域名,但是网页内容与结构不变,则可以使用以下代码来实现:
RewriteEngine On
RewriteBase / RewriteCond %{HTTP_HOST} !ssffx.com$ [NC]
RewriteRule ^(.*)$ http://ssffx.com/$1 [L,R=301]
如果是带WWW的域名间跳转,则以此类推,在域名前加上WWW即可。
一般来说,以上这些是网站建设过程中非常常用的几行代码。这些代码对Google非常适用,Google很快就会按照你的意愿将收录的网址改变过来,并且如果换了域名,还能保留以前域名的PR值。
htaccess 404错误页面的自定义
估计所有类型的页面里,404错误页面是见得最多的一个页面了,冷不防出现个冰冷的404,用户体验非常差,也会给SEO带来不好的影响。一个好的404错误页面不仅可以引导用户至正确的页面,也会给人一种赏心悦目的感觉。另外,也可以通过301重定向来更好的解决该页无法找到的问题。
如果网站建立不久,就出现了什么改版、换程序等等,会在搜索引擎中产生大量的无效页面,如果不及时处理,很可能使你的站在搜索引擎中降低地位。众所周知,在Windows IIS里面,可以直接通过管理工具自定义错误文档,但这在Apache下如何实现呢?如果你用的是虚拟主机,无法自己定义,又该如何实现呢?
这个问题难不倒万能的htaccess,通过htaccess定义404错误可谓是小菜一碟,并且其它的错误类别也可以依葫芦画瓢。
一般来说,有两种方法可以自己定义404错误页面,一种是通过空间控制面板,这种方法简单易行;另一种是自己建立htaccess文件,写入定义:
ErrorDocument 404 http://www.ssffx.com/404.html
该行代码即定义404错误为404.html这个页面。其中404为错误代码,后面的网址为出现错误时需要返回的页面。我们非常建议使用完整地址,这样会减少出错的几率。另外,还有很多常用的其它错误代码也可以自己定义,如:
400 - Bad request 错误的请求
401 - Authorization Required 需要认证
403 - Forbidden directory 禁止访问
404 - Page not found 无法找到该页
500 - Internal Server Error 内部服务器错误
按照以上的格式添加进去即可。如果按照以上方法出现错误,可能是文件保存编码的问题。因此,我们建议您使用我们的工具来替您全自动完成这项工作,或者使用notepad2来编写该htaccess文件。
htaccess 伪静态的规则
利用htaccess文件可以很好的进行站点伪静态,并且形成的目标地址与真正的静态页面几乎一模一样,如abc.html等,伪静态可以非常好的结合SEO来提高站点的排名,并且也能给人一种稳定的印象。
由于伪静态必须要完全根据不同的站点进行不同的设置,因此,我们仅能简单介绍其原理,给出几个常用程序的示例:
若要通过htaccess使用伪静态,则必须空间商支持Rewrite模块,该模块负责URL的重写。否则即便是设置好了,也无法使用,并且还有可能出现500错误。
下面是Discuz的伪静态设置文本:
# 将 RewriteEngine 模式打开
RewriteEngine On
# Rewrite 系统规则请勿修改
RewriteRule ^archiver/((fid|tid)-[0-9]+.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+).html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+).html$ space.php?$1=$2
RewriteRule ^tag-(.+).html$ tag.php?name=$1
以下是Phpwind的伪静态设置文本:
RewriteEngine On RewriteBase / RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
RewriteRule ^(.*)simple/([a-z0-9\_]+.html)$ $1/simple/index.php?$2
此外,还有很多种不同的规则,如果想制定出适用于自己站点的伪静态规则,必须熟悉网站结构和正则表达式。