web-dev-qa-db-ja.com

WordpressのパーマリンクはURLの疑問符(?)に変わる

私のパーマリンクカスタムURLは/%post_id%/%postname%/です。

私のウェブサイトはペルシャ語です、投稿によってはパーマリンクはからURLに変更されています

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/?-???-????/

しかし、これはすべての投稿で起こるわけではありません。例えば、次の投稿はうまくいきます:ahangbaz.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_postsテーブルをチェックインし、Post_nameは両方の投稿で似ているようです。

Post_nameを英語に変更してもうまくいきますが、post_nameがペルシャ語の場合、問題が発生します。 Webサーバーは、Windows 2008 R2ではIIS 7.5です。


さらなるテスト:

  • 私はテーマを変更し、すべてのプラグインを無効にしました、それはまだ起こります。私はDBの照合とそのUTF8をチェックしました。

  • この問題を再現するには、post_title =を使用し、post_nameは%d8%a7%d8%a8%db%8c-%d8%b7%d9%be%d8%b4-%da%86%d8%になります。 b4%d9%85%d9%87

  • スラグがペルシャ語のahangbaz.com/category/%d8%a7%d8%a8%db%8cにある場合でも同じ問題がカテゴリで発生しますが、英語またはそれが機能する場合ahangbaz.com/category/ 22。

6
Robert

@Indoleringが述べたような問題は、URL書き換えモジュールによって処理されたときにUTF-8文字を含むURLが正しく渡されないというURL書き換えモジュールに関連しています。

私はサーバーの所有者ではないし、私が言及した修正プログラムをインストールすることができないので(たとえIIS8.5を使っていても問題はまだ存在している)私はどういうわけかこれを回避しなければならなかった。

Joomlaのための@ pouria-p によって提案された解決策は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}" />

ステップ2.$_SERVER['REQUEST_URI']ファイルの先頭に次の行を追加して、index.phpを手動で更新します。

if(isset($_GET['requesturi']))
  $_SERVER['REQUEST_URI'] = $_GET['requesturi'];
2
Amer Sawan

コメント機能はありませんが、問題はMSサーバー側、特にURL書き換えモジュールにある可能性が非常に高いです。これがIIS上のパーマリンクを処理するものです。この問題には hotfix がありますが、おそらくあなたのシステムで利用可能なすべてのhotfixを適用するべきです。

1
Indolering