怎么设置WordPress固定链接和伪静态

怎么设置WordPress固定链接和伪静态,第1张

wordpress固定链接设置参数: 参数不多说,很死的东西,按照WordPress官方文档列表如下:

1. %year% 基于文章发布年份,比如2007;

2. %monthnum% 基于文章发布月份,比如05;

3. %day% 基于文章发布当日,比如28;

4. %hour% 基于文章发布小时数,比如15;

5. %minute% 基于文章发布分钟数,比如43

6. %second% 基于文章发布秒数,比如33

7. %postname% 基于文章的postname,其值为撰写时指定的缩略名,不指定缩略名时是文章标题;

8. %post_id% 基于文章post_id,比如423;

9. %category% 基于文章分类,子分类会处理成“分类/子分类”这种形式;

10. %author% 基于文章作者名。

将上述参数进行组合,即可得到wordpress的固定链接形式。网上常见的几种设置方法:

/%year%/%monthnum%/%day%/%postname%/

/%year%/%monthnum%/%postname%/

/%year%/%monthnum%/%day%/%postname%.html

/%year%/%monthnum%/%postname%.html

/%category%/%postname%.html

/%category%/%post_id%

/%postname%.html

/%post_id%.html 我们一般使用这个方式比较好。

wp永久链接设置技巧:

一、不要让日期出现在wordpress固定链接里面

这基于两个方面的考虑。一是如果数字出现在固定链接里面,等于提醒搜索引擎,这是很旧的内容了,没必要再爬一遍了。另外一个原因是,假如你要修改文章的日期重新发布的话,链接地址就变了,也就是意味着你的反向链接,PR 等等都没有了。

二、不要让分类的链接出现在固定链接里面

这一点是很多人都会忽略的地方。让分类出现在固定链接里面有两个缺陷:一是一篇文章如果选择了多个分类的话,则会出现多个链接地址,这很容易造成因为重复内容而被搜索引擎惩罚;二是有可能会造成关键词堆砌而被搜索引擎惩罚。

三、链接不要过深

这一点经常看到。很多wordpress 用户的固定链接是年/月/日/分类名/文章名。这种过于深的固定链接对搜索引擎是非常不友好的。

四、不要让中文字符出现在固定链接里面

虽然现在的搜索引擎已经能识别URL地址里面的中文字符,但无论是从美观上,还是从wordpress 优化的角度来看,都是非常差的。

Win服务器下设置WordPress固定链接伪静态

只要主机支持自定义404页面,无需安装插件,就能让Win主机像Linux 那样,方便使用WordPress的固定链接为静态化地址格式。

设置固定链接(Permalink)伪静态步骤:

1. 将以上代码保存为 404.php,并上传至主机根目录。

2. 设置 404 自定义错误页为 404.php。

3.进入 WordPress 控制面板,设置(Options)- WordPress固定链接(Permalinks),选择固定链接格式。如果你觉得上面新建404页面太麻烦了!那我给你推荐一个插件吧!那就是 Permalinks Migration Plugin Permalinks Migration Plugin的主要原理是利用“301转向”来实现既不丢失原有的链接,同时又让读者和搜索引擎知道,你已经修改了固定链接的效果,让他们尽快更新链接。

也许自己好久没有写程序了,慢慢的什么都给退化了呢,我也有看见wordpress写有.htaccess这个文件,为什么不行呢?后来上网查了一下,原来我未开启伪静态的模块LoadModule rewrite_module,于是在 apache的配置文件httpd.conf开启了LoadModule rewrite_module,然后再设置固定链接的形式为/%post_id%.html,就可以打开了,自然高兴了,我本地的环境是win+php+apache的;当然为我们提供的服务商一般用的iis服务器的,解决办法是

首先你先问你空间商,你购买的空间支持不支持伪静态,一般购买的付费空间/虚拟主机都是支持的。如果支持的话,就创建一个httpd.ini文件,把下面代码保存到该文件中,上传到网站的根目录就可以了。然后,之后进入WP后台修改固定链接,比如修改为:%/tegory%/%post_id%.html,很简单吧。

复制代码

代码如下:

[ISAPI_Rewrite]

# Defend your computer from some worm attacks

#RewriteRule .*(?:global.asa|default.ida|root.exe|..).* . [F,I,O]

# 3600 = 1 hour</p><p>CacheClockRate 3600

RepeatLimit 32</p><p># Protect httpd.ini and httpd.parse.errors files

# from accessing through HTTP

# Rules to ensure that normal content gets through</p><p>RewriteRule /tag/(.*) /index.php?tag=$1

RewriteRule /software-files/(.*) /software-files/$1 [L]

RewriteRule /images/(.*) /images/$1 [L]

RewriteRule /sitemap.xml /sitemap.xml [L]

RewriteRule /favicon.ico /favicon.ico [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]

这个规则文件的写法是IIS6.0下最新的wordpress伪静态规则。一般win主机都是IIS6.0的web服务器 ,而不是Apache的,在IIS服务器下,像一些常见的wordpress博客、shopex网店系统等第三方知名第三方程序,伪静态的实现,自己只需要把网站的静态化规则文件命名为httpd.ini文件放在网站根目录就可以了,无须通过网站后台设置,那是在Linux系统下的Apache服务器下才那样设置。

下面这个方法也是从网上找来的,希望和大家一起分享学习了,有什么好的方法一起多多交流了!

安装isapi方式的rewrite组件或urlrewrite组件(web.config放规则)

:

01 <?xml version="1.0" encoding="UTF-8"?>

02<configuration>

03<system.webServer>

04<staticContent>

05<mimeMap fileExtension=".bat" mimeType="text/bath" />

06</staticContent>

07<rewrite>

08<rules>

09<rule name="home Index">

10<match url="^index.html$" ignoreCase="false" />

11<action type="Rewrite" url="index.php" appendQueryString="false"/>

12</rule>

13<rule name="page Index">

14<match url="^(.*)/index.html$" ignoreCase="false" />

15<action type="Rewrite" url="{R:1}/index.php"appendQueryString="false" />

16</rule>

17

18<rule name="page List">

19<match url="^(.*)page([0-9]+).html$" ignoreCase="false" />

20<action type="Rewrite" url="{R:1}/index.php?gid={R:2}"appendQueryString="false" />

21</rule>

22<rule name="list Page">

23<match url="^(.*)list-([0-9]+).html$" ignoreCase="false" />

24<action type="Rewrite" url="{R:1}/.php?PageNo={R:2}"appendQueryString="false" />

25</rule>

26<rule name="show Page">

27<match url="^(.*)show-aid([0-9]+).html$" ignoreCase="false" />

28<action type="Rewrite" url="{R:1}/show.php?uid={R:2}"appendQueryString="false" />

29</rule>

30

31</rules>

32</rewrite>

33</system.webServer>

34</configuration>

第一步:

点击处理程序映射

(1)添加托管处理程序:

路径:*

类型:System.Web.UI.PageHandlerFactory

名称:v2_jiuxian.com_1PageHandlerFactory-Integrated-4.0

(2)编辑脚本映射:

我环境是64位,为了以防万一,我32位和64都配置了

32位

路径:*.html

可执行文件:%windir%\http://Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

名称:v2_jiuxian.com_2PageHandlerFactory-ISAPI-4.0_32bit

64位:

路径:*.html

可执行文件:%windir%\http://Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll

名称:v2_jiuxian.com_3PageHandlerFactory-ISAPI-4.0_64bit

(3)添加通配符脚本验证:

路径:*

可执行文件:%windir%\http://Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll

名称:v2.jiuxian.com_4PageHandlerFactory-ISAPI-4.0_64bit

以上的4个添加其实是把aspx的主件应用拷贝了一份.将其aspx改成html,

操作完以上4个项后返回,点击模块

(1)添加托管模块

名称:RewriterModule

类型:HttpHandler.URLRewriter.RewriterModule, HttpHandler

以上类型是你iis拦截器dll的路径啊,如空间名.类名

网站无法搬到根目录下么,还是有其他原因,如果可以,建议直接搬过去,写规则,页面不一样,多的话麻烦,写漏了就404了,没那个条件就写伪静态吧,具体咋样的,得看你网站还有没有做其他设置,譬如已经做了一次伪静态了,有的程序就有,没有做过得话,直接public文件夹指向你得网址就可以了,其他网页网址如果带有public的,直接也可写函数替换掉,没处理好可以找额代弄,ok


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/54682.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-26
下一篇2023-02-26

发表评论

登录后才能评论

评论列表(0条)

    保存