permalinks在wordpress后台修改固定链接.htaccess技巧

Permalinks是你个人博客文章的永久网址,以及类别和其他博客帖子列表。Permalink是另一个weblogger用来链接到您的文章(或部分)的内容,或者是如何在电子邮件中发送到您的故事的链接。每个帖子的URL应该是永久的,永远不会改变–因此佩玛链接。

WordPress Permalinks有三种基本类型:

默认:“丑陋”默认:“丑陋”

默认设置如下

http://example.com/?p=N

其中N是邮政ID号。它在所有服务器环境中都能工作,但它看起来不像其他一些选项那么好。

顶↑

使用MOD_REWARD或Lightttpd,您可以生产更好的permalinks(参见漂亮的果酱)。有许多不同的格式,但最常见、最通用的格式如下

http://example.com/2012/post-name/

http://example.com/2012/12/30/post-name

漂亮的permalinks可在以下几个方面获得:

顶↑

PATHINFO:“几乎漂亮”PATHINFO:“几乎漂亮”

PATHINFO permalinks看起来非常类似mod_rewrite permalinks,但有一个例外:它们前面插入了/index.php,如下所示:

http://example.com/index.php/yyyy/mm/dd/post-name/

否则,它们与“漂亮”mod_rewrite permalinks相同,并且具有类似的灵活性。Mod_rewritepermalinks可以做的任何事情,PATHINFO permalinks都可以这样做,在/index.php部分的帮助下。

顶↑

在“设置”→permalinks屏幕中,可以选择更常见的permalink结构之一,也可以在“自定义结构”字段中使用结构标签.

请注意:不要将站点url放在permalinks字段中。您只使用其中一个结构标记,或组合标记。

要激活PATHINFO permalinks,请使用index.php/启动permalink结构。

顶↑

结构标签结构标签

您可以使用这些标记来自定义您的“漂亮”或“几乎漂亮”的Permalinks。一些提示:

  • 不要将站点url放在permalinks字段中。您只使用其中一个结构标记,或组合标记。
  • 确保以%post_id%或%postname%结束您的结构(例如/%年份%/%Monthum%/%day%/%postname%/),以便每个permalink指向单个帖子。

年%%
职位年,四位数,例如2018年

%月%
一年中的月份,例如05

%日%
一个月中的某一天,例如28

%小时%
例如,一天中的15小时

%分钟%
小时每分钟,例如43分钟

%秒%
第二分钟,例如33

%后id%
帖子的唯一ID#,例如423

%邮名%
这篇文章标题的一个经过消毒的版本(后鼻塞“编辑邮报/网页”面板上的字段)。“这是一个伟大的邮报!”成为URI中的一个很棒的帖子。

%类别%
类别名称的经过消毒的版本(类鼻塞“新建/编辑类别”面板上的字段)。嵌套子类别在URI中显示为嵌套目录。

作者%
作者姓名的消毒版。

顶↑

类别库和标签库类别库和标签库

这个类别基标签基是用于类别和标记归档的URL中的前缀,如下所示:

 example.net/wp/category_base/category_name
 example.net/wp/tag_base/tag_name

它们的默认值是类别和标记。您可以更改它们,但是不能将它们从URL中全部删除。

自定义Permalinks在大多数系统上工作没有任何问题,但仍然存在一些问题发生的条件。

顶↑

在POST上使用%类别%和多个类别在POST上使用%类别%和多个类别

当您将多个类别分配给一个帖子时,只有一个类别可以显示在Permalink中。分类按字母顺序排列。在每一组子类别中,顺序也是按字母顺序排列的。(见管理类别)。该帖子仍可正常访问所有类别。

试试看WP类Permalink插件,如果你想选择哪一个类别显示在permalink中。

顶↑

所需经费:

  • 安装mod_rewrite模块的ApacheWeb服务器
  • 在WordPress的主目录中,
    • 这个后SymLinks选项启用
    • FileInfo指令允许(例如)AllowOverride FileInfoAllowOverride All)
    • .htaccess文件(如果缺少此文件,WordPress将尝试在激活“漂亮”permalinks时创建该文件)
    • 如果您希望WordPress自动更新.htaccess文件,WordPress将需要对该文件进行写访问。
  • 尼克斯,针对高并发性、高性能和低内存使用率的Web服务器,在服务器块中添加以下位置块:
location / {
            try_files $uri $uri/ /index.php?$args;
}
  • 伊瓦塔,一个非常注重安全性的Web服务器,请使用以下UrlToolkit规则:
UrlToolkit {
    ToolkitID = wordpress
    RequestURI exists Return
    Match .*\?(.*) Rewrite /index.php?$1
    Match .* Rewrite /index.php
}
  • 在本地运行WordPress的Mac用户必须编辑其httpd.conf文件,编辑AllowOverrider行才能读取超额驾驶目录“/Library/WebServer/Documents”主机指令。对于MacOSX10.5.x和Up,该文件位于in/private/etc/apache2/users/[your-username].conf,,否则它位于/etc/httpd/httpd.conf。

当您创建或更新一个“漂亮”的permalink结构时,WordPress将生成重写规则并尝试将它们插入到适当的.htaccess文件中。如果不能,它会说,您应该立即更新.htaccess,并打印规则,以便您复制并粘贴到文件中(将它们放在末尾)。

您可能只需要这样做一次,因为WordPress在内部进行重写。如果您移动WordPress主目录(站点地址),您需要重复这个步骤。

WordPress将很好地处理现有的.htaccess,不会删除任何现有的RewriteRules或其他指令。如果您有其他mod_re书面规则,请将您的规则放在WordPress的前面。

顶↑

我的.htaccess文件呢?我的.htaccess文件呢?

应该将WordPress的index.php和.htaccess文件放在网址(网址)设置在“常规选项”页面上。由于文件名以点开头,除非您更改FTP工具的首选项以显示所有文件,包括隐藏的文件,否则文件可能无法通过FTP客户端显示。一些主机(例如Godad)可能不会显示或允许您编辑.htaccess,如果您通过Godad宿主连接安装安装WordPress。

顶↑

创建和编辑.htaccess创建和编辑.htaccess

如果您还没有.htaccess文件,请创建一个。如果您对服务器具有shell或ssh访问权限,则一个简单的touch .htaccess命令将创建该文件。如果您正在使用FTP传输文件,请在本地计算机上创建一个文件,将其命名为1.htaccess,然后将其上载到WordPress文件夹的根目录,然后将其重命名为.htaccess。

您可以通过FTP、shell或(可能)您的主机的.htaccess文件进行编辑。控制面板.

在.htaccess文件中应该包含以下permalink重写代码:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

如果.htaccess文件包含导致站点瘫痪的错误(“内部服务器错误(500)”),则需要使用FTP或主机的控制面板若要删除rogue.htaccess文件,请执行以下操作。

顶↑

自动更新.htaccess自动更新.htaccess

如果WordPress不能自动更新.htaccess文件,它会告诉您,如果.htaccess文件是可写的,我们可以自动这样做,但它不是…。靠近设置→Permalinks屏幕底部。

如果你想让WordPress这么做,你需要授予WordPress对.htaccess文件的写访问权限。所需的确切权限取决于您的服务器设置。尝试为所有者添加写权限,然后分组,然后在每次更改后进行测试;一旦WordPress成功地编辑了该文件,就不要添加任何进一步的写权限。

应用permalinks之后,您应该将权限更改为660或644这样更强的权限,以防止服务器上的其他人可能访问它。

顶↑

顶↑

修正.htaccess生成问题修正.htaccess生成问题

如果WordPress的安装不生成.htaccess文件,或者它没有将新规则写入现有的.htaccess文件,那么有几个原因可能导致这种情况。一步一步地工作,如果上一步不工作,则继续到下一步。

  1. 更改文件权限:你必须chmod.htaccess文件到666以使用WordPress编辑它。模板编辑器,但这是不推荐的,因为如果您这样做,您的博客的任何用户,谁可以编辑模板将能够编辑它。您可以将权限更改为660,使其具有服务器可写性,这将再次具有相同的限制。
  2. 服务器阻塞:您的主机可能阻止了server_Software变量,这将导致WordPress‘.htaccess生成失败。如果您确信您的服务器正在运行Apache,则可以通过更改wp-include/vars.php文件来强制WordPress相信您的服务器正在运行Apache。按照下面的步骤来实现这些更改。
    • 使用WordPress管理面板中内置的文件编辑器打开wp-include/vars.php文件。要导航到这个面板,登录到WordPress,点击“管理”,然后在“文件”,滚动到底部并键入wp-include/vars.php到文本框下的“其他文件”标题。寻找
      $is_apache=strstr($_server[‘server_Software’],‘apache’)?1:0;
      并将其替换为
      //$is_apache=strstr($_server[‘server_Software’],‘apache’)?1:0;

    • //$is_apache=strstr($_server[‘server_Software’],‘apache’)?1:0;
      并键入
      $is_apache=1;
  3. XAMPP(Windows)用户:的某些版本XAMPP默认情况下不要启用mod_rewrite(尽管它(用Apache编译)。要启用它–从而使WordPress能够编写创建漂亮permalinks所需的.htaccess文件–您必须打开apache/conf/httpd.conf,并取消LoadModule重写模块/mod_rewrite.so(即删除行前面的散列/磅号)行的注释。
  4. Wamp(视窗)用户:一些版本的Wamp(所有版本?)默认情况下,不要启用mod_rewrite或允许遵循SymLinks。要启用所需的功能,导航到Apache/conf/httpd.conf文件,使用文本编辑器打开并取消LoadModule重写模块/mod_rewrite.so(即删除行前面的散列/磅号)行的注释。然后,在相同的文件中,有一个以行“Options后Symlink”开头的部分。将该部分的第二行从“AllowOverridNone”更改为“AllowOverridAll”。保存已编辑的httpd.conf并重新启动所有Wamp模块。你的眼镜蛇应该能用了。

顶↑

小贴士小贴士

顶↑

请注意,即使一个人一天可能不会发布一个以上的帖子,因此希望使用例如%年份%%Monthum%%day%,但是这样生成的链接将被解释为当天所有帖子的存档。一个人需要至少%%,%%,月%,%%,日%,%%,小时%,才能瞄准一个个人岗位。

顶↑

检查博客是否具有Permalink结构的一种方法是:

<?php if ( get_option('permalink_structure') ) { echo 'permalinks enabled'; } ?>

顶↑

另见另见

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论