正在加载中

设置wordpress永久链接的具体方法(操作步骤)

本文为“选择wordpress永久链接的技巧(注意事项)”之续
当你买了带mod_rewrite 模块的服务器(最好是Linux的),安好wordpress,并且选择好你将要使用的永久链接形式后,要做的就是在wordpress后台的“自定义结构”处填上你所选择的永久链接形式,再在你的网站空间里配置好“.htaccess” 文件了。
“.htaccess” 文件如何配置,让我们继续里看:
1.“.htaccess” 文件在哪里?
因为文件名的开头是由 “.”开始的,所以在FTP登陆的时候,这个文件可能看不到。除非你更改FTP工具的偏好选项,来显示所有的文件,包括隐藏文件。如果你还没有一个.htaccess 文件, 创建一个.如果你有shell工具, 或者可以通过ssh方式登陆web服务器, 你可以通过一个简单的 touch .htaccess命令将创建这样一个文件。. 如果你使用FTP,在你的本地电脑上创建一个文件,命名为 1.htaccess,把这个文件上传到你的WordPress安装目录的根目录下,并把它重命名为.htaccess. 假设您的 WordPress blog 被安装在 domain.com/wordpress/ 目录下,请将 .htaccess 文件放置在 domain.com/wordpress/.htaccess。不过,如果您的 WordPress 安装在一个子目录中,而您的访客通过站点的顶级域名访问它,请将 .htaccess 文件放置在 domain.com/.htaccess。(译者注:上述“domain.com”指代您的域名)
另外,不管你的.htaccess 文件放在哪个位置,.htaccess 文件中的正规则所对应起作用的路径一定要是你的WordPress程序所安装的目录,如果你的WordPress程序安装在根目录,那你的规则中所对应的路径就是“/”,如果安装在“WordPress”这个子目录下,对应的路径就是“/WordPress/”。

当您建立一个静态链接(permalink)结构後,WordPress 将生成重定向(Rewrite)规则并试图将它们插入正确的 .htaccess 文件。如果WordPress自动插入失败,系统将输出该规则以便您将其复制并粘贴至您的 .htaccess 文件中。

关于创建和编辑您的 .htaccess 文件的一些注意事项:
1.WordPress 能很好的操作现有的 .htaccess 文件并且不会删除您现存的规则。
2.如果您配置有其它 mod_rewrite 规则,它们的优先级将高于 WordPress 的规则。
3.您必须拥有 FTP 或 SSH 通路来创建 .htaccess 文件。
4.您必须将 .htaccess 文件的访问许可设为 666 以允许 WordPress 自动将其规则写入该文件。在应用静态链接(permalink)後,您应当设置更可靠的文件访问许可,比如 660,从而防止服务器上的其他人通过潜在的通路修改它。(译者注:设置文件访问许可的操作可以通过 FTP 软件完成)
5.如果您的 .htaccess 文件存在错误并导致站点出错,您需要使用 FTP 软件或者您主机的控制面板删除有误的 .htaccess 文件。一旦某个致命的修改在 WordPress 编辑器中被保存,该编辑器(连同您站点的其他部分)都将失效直至该问题被修复。
6.您同样可以利用主机的控制面板创建和编辑 .htaccess 文件。因此,即使 .htaccess 文件中的错误已经导致您的站点失效,您仍旧可以在控制面板中编辑它。
7.由于以上这些原因,建议您每次仅对 .htaccess 文件作出小改动并经常保存及测试您的站点。通过这样您就可获知何时出错,并能很快地通过 FTP 修复错误。

解决 (.htaccess)生成的问题

你的WordPress安装过程中可能没有生成.htaccess文件或者没有添加新的规则到已有的.htaccess文件,有两个可能会造成这种情况。如果之前你所做的都不起作用那么请按下面的方法一步一步的做。

  1. “更改文件的权限:”你必须使用chmod命令 更改 .htaccess文件的权限为666,这样你就可以用template editor来编辑它,但是并不是必须这么做,因为这样以来,博客的任何可以编辑模板的用户都能编辑它了。所以你可以把权限改为660使他成为服务器可写,同时保持相同的限制。
  2. “服务器的限制:”你的托管商可能会封禁SERVER_SOFTWARE 这个变量,这会造成WordPress的.htaccess文件生成失败。如果你确定你的服务器运行的是Apache,你可以通过更改wp-includes/vars.php 文件强制WordPress相信你的服务器正在运行Apache。请按下面的步骤做更改。
    1. 用WordPress管理面板内置的文件编辑器打开wp-includes/vars.php。要找到这个面板,请先登录WordPress,点击“网站管理”,然後点击“文件”,滚动页面到底部并在标题为“其他文件”的输入框里输入wp-includes/vars.php
    2. 找到 $is_apache = strstr($_SERVER['SERVER_SOFTWARE'], ‘Apache’) ? 1 : 0;,并把它替换为// $is_apache = strstr($_SERVER['SERVER_SOFTWARE'], ‘Apache’) ? 1 : 0;
    3. 在下面添加一行// $is_apache = strstr($_SERVER['SERVER_SOFTWARE'], ‘Apache’) ? 1 : 0; and type in $is_apache = 1;

另外发现Permalink Redirect这个插件当新的永久链接形式包含分类时,它的重定向就哑了,网上找了一下,Dean’s Permalinks Migration这个插件可以应付这种情况。

再另外,如果在没有查清楚服务器对Mod Rewrite功能是否支持之前,就把Options(选项)里面的PermaLink(永久链接),由“默认”,改成“基于日期和名称”,结果导致整个Blog都无法访问,出现500错误的话,解决方法有两个:
1.用FTP登陆主机,找到Blog所在的目录里面的.htaccess,把它改个名字,重新登陆Blog,进入控制面板进行修改原来的设置,改成“默认”,即可;(如Blog还是无法访问,按照该步骤操作多一次);
2.如果在FTP上找不到.htaccess,即该文件在服务器上是隐藏的。可联系空间服务商开通Mod Rewrite功能,或者删除掉.htaccess。

本来关于wordpress永久链接写到这里也就该完了的,可惜啊,aoker按照上面的步骤做了之后还是无法实现永久链接。设置好永久链接后去点击自己的文章,链接的路径倒是生成了,可惜进入的是404页面(有链接却找不到链接下的内容)。aoker马上去查看了空间里.htaccess里的内容,内容为空,也就是wordpress根本没把规则写进去。而且,wordpress也没提示我不能写入,也没给出规则叫我自己写进去。看来,aoker只有自己去找规则来写进去了。所以,有了下一篇文章:
与常见wordpress永久链接参数相对应的.htaccess规则

本文由以下网页(作者)提供内容:
http://rubyol.javaeye.com/blog/68471
http://www.mao-dun.com/
http://www.vven.net/blog/?p=355
aoker只是稍微做了一下整理和提供一些自己的看法。谢谢他们的分享。


Post a Comment