1

古い W​​ordPress サイト ページを新しい基本的な PHP サイト ページにリダイレクトするのに問題があります。

例: 拡張子のない古い WordPress ページはhttp://example.com/levelone/leveltwo/pagename

新しいページはhttp://example.com/directory/pagename.phpです。

ここに私が試したいくつかのことがあります:

redirect 301  /levelone/leveltwo/pagename http://example.com/directory/pagename.php

これはまったく機能しませんでした

次に、最初にディレクトリをリダイレクトしてから、次のようにページをリダイレクトしようとしました。

RedirectMatch 301 ^/levelone/leveltwo/ http://example.com/directory/
redirect 301  /pagename http://example.com/pagename.php

これはほとんど機能しましたが、適切な URL が得られましたが、PHP 拡張機能はありませんでした。

実際には多くのディレクトリがあるため、古いディレクトリを新しいディレクトリにリダイレクトすることはできません。例はほんの一例です。拡張機能のないページから拡張機能のあるページに移る際に問題が発生しているよう.phpです。

これが私が試した別のことです:

RedirectMatch 301 ^/levelone/leveltwo/(.*)$ /directory/$1.php
redirect 301  /pagename http://example.com/pagename.php

これは私に与えましたhttp://example.com/directory/pagename/.php

解決済み:次のように動作するようになりました:

Redirect 301 /levelone/leveltwo/pagename/ http://example.com/directory/pagename.php

問題は、古いページ名の後にスラッシュがないことにあるようです。

4

1 に答える 1

0

試す:

RedirectMatch 301 ^/levelone/leveltwo/(.*)$ /directory/$1.php

おそらく、mod_alias と mod_rewrite がうまく機能していないことが原因です。それらは両方とも URI ファイル マッピング パイプラインにあるため、一方が処理を行うと、URI は (リダイレクト応答が最終的に発生するものですが) 引き続き処理され、リダイレクトが発生すると、URI は mod_rewrite によってマングルされます。 .

ワードプレスのルールが機能しないようにするには、mod_rewrite に固執する必要があります。htaccess ファイルにあるすべてのワードプレスルールの上にこれらのルールを追加します。

RewriteEngine On
RewriteRule ^/?levelone/leveltwo/(.*)$ /directory/$1.php [L,R=301]
于 2012-09-20T22:34:46.180 に答える