WordPress固定链接更改为问号(?)在URL中

时间:2013-04-07 作者:Robert

我的永久链接自定义url为/%post\\u id%/%postname%/

我的网站是波斯语的,有些帖子的永久链接是从

http://www.ahangbaz.com/1300/%d8%a7%d8%a8%db%8c-%d8%b7%d9%be%d8%b4-%da%86%d8%b4%d9%85%d9%87/ 进入-->http://www.ahangbaz.com/1300/?-???-????/

但并非所有帖子都是这样,例如下面的帖子效果很好:阿汉巴兹。com/1106/%D9%82%DB%8C%D8%B5%D8%B1-%D8%A8%D8%B9%D8%AF-%DA%86%D9%86%D8%AF-%D8%B3%D8%A7%D9%84/

我查看了wordpress的wp\\u posts表,这两篇文章的Post\\u名称似乎很相似。

如果我将post\\u名称改为英语,效果很好,但当post\\u名称是波斯语时,问题就出现了。web服务器是windows 2008 R2上的IIS 7.5。

进一步测试:

我更改了thema并禁用了所有插件,这种情况仍然存在。我检查了DB colation及其UTF8。

要复制问题,请使用post\\u标题,post\\u名称为%d8%a7%d8%a8%db%8c-%d8%b7%d9%be%d8%b4-%da%86%d8%b4%d9%85%d9%87

当slug出现在波斯阿汉巴兹时,同样的问题也会出现在类别上。com/category/%d8%a7%d8%a8%db%8c不起作用,但如果是英语或数字,它就起作用了。com/类别/22。

2 个回复
SO网友:Amer Sawan

@Indolering提到的问题与URL重写模块有关,即包含UTF-8字符的URL在URL重写模块处理时没有正确传递。

因为我不是服务器所有者,而且我无法安装上面提到的修补程序(尽管我使用的是IIS8.5,但问题仍然存在),所以我不得不设法解决这个问题。

The solution suggested by @pouria-p 因为Joomla也适用于Wordpress。

Step 1.更新中的重写规则web.config 文件

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
            <rule name="WordPress" patternSyntax="Wildcard">
                <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>

                    <!-- The changes are applied to this line only -->
                    <action type="Rewrite" url="index.php" />
            </rule></rules>
    </rewrite>
  </system.webServer>
</configuration>
规则如下:

<action type="Rewrite" url="index.php?requesturi={URL}" />
Step 2. 更新$_SERVER[\'REQUEST_URI\'] 通过将以下行添加到index.php 文件:

if(isset($_GET[\'requesturi\']))
  $_SERVER[\'REQUEST_URI\'] = $_GET[\'requesturi\'];

SO网友:Indolering

我没有评论功能,但问题很可能出在MS服务器端,特别是URL重写模块。这就是在IIS上处理永久链接的方法。有一个hotfix 对于此问题,您可能应该应用系统可用的所有修补程序。

结束

相关推荐

Subpages Permalinks Issues

我的网站看起来像:Page-1 (page.php)。。。Subpage-1 (custom-collection.php; 自定义帖子类型)。。。。。。Filtering Output-Post (custom-collection-single.php)当我使用打开过滤输出帖子时/%postname% 对于permalinks,我得到404错误页。一些代码:custom-collection.php<?php $args = array( \'post_type\' => \'weine\