1

これに対する答えが見つからず、簡単な答えかもしれないと思いました。

地元のニュースサイトである私の会社は、独自のCMSからWordPressへの移行に取り組んでいます。課題の一部は、URLを再構築することです。私は301リダイレクトを利用しますが、私の問題は次のとおりです。

ページ名の例:ストーリー名:is "this"例古いCMSページのURL:/ story-name--is--this- /新しいCMSページのURL:/ news / 2012/09/12 / story-name-is-this //

古いCMSは、特殊文字とスペースをハイフンに変換しました。WordPressは、代わりに特殊文字を無視し、スペースをハイフンに変換するように構成されます。さらに、古いCMSではURLに日付が含まれていなかったため、日付の追加に関して最適なルートがわかりません。

ありがとう!

4

2 に答える 2

0

あなたの本当の質問は何ですか?また、正規表現が問題とどのような関係があるのか​​ もわかりません。

ブラウザ経由でアクセスしたときに古い記事への呼び出しを傍受できると仮定すると、古い CMS の機能に関する情報はありませんが、それらがレンダリングされる前に、リダイレクトを形成してブラウザに送り返すことができます。独自の CMS で利用可能なプログラミング メカニズムを使用して url を作成します。

ここでも、Java にアクセスできると仮定します。


A. リダイレクト URL を生成するときに、記事の日付にアクセスして、その日付から 2012/09/12 を形成できます。SimpleDateFormatter を使用して、日付を YYYY/MM/DD のような文字列表現にフォーマットできます。
B. タイトルにも同様のアプローチを使用して、タイトル文字列の特殊文字のリストを空のスペースに置き換えることができます。たとえば、Apache StringUtils ライブラリを使用すると、検索する文字セットを指定でき、見つかった場合はターゲット文字に置き換えられます。
C. A と B の出力を連結してターゲット リダイレクト URL を作成し、それを記事自体ではなくブラウザに送り返す。

于 2012-09-12T17:34:09.423 に答える
0

古いリンクをすべて取得し、データベースを検索して新しいリンクに変換し、ブラウザを新しいリンクにリダイレクトするスクリプトを作成する必要があります。または、古いリンク -> 新しいリンクのマッピング全体を列挙し、それぞれに 301 リダイレクトを作成する必要があります (vhost/server 構成または htaccess ファイルのいずれかで):

Redirect 301 /story-name--is--this-/ /news/2012/09/12/story-name-is-this/
于 2012-09-12T17:26:12.110 に答える