動的に生成されたサイトの引越しの件で

質問全般・改善要望
mojira
メンバー
メンバー
記事: 85
登録日時: 2009年10月04日(日) 14:25

動的に生成されたサイトの引越しの件で

投稿記事by mojira » 2013年6月29日(土) 11:22

表題の件ですが
動的に生成されたサイトでURLの後ろに「?」「&」「=」などで区切られたパラメータが付いているページがあるのですが、
検索エンジン対策の関係から上記の動的URLを変更せずにMODxへ移行する方法はございますでしょうか。

例えばMODx管理画面にて、グローバル設定→フレンドリーURLを使用。

リソース作成の「ページ設定」→「エイリアス」入力で
detail.html?id=00575

と入力した場合、
detail.html%3Fid%3D00575

ブラウザのURL表示は上記のようにエンコード処理されてURLが変わってしまいます。
ブラウザの仕様なのかも知れませんが「エイリアス」入力でエンコードされずに表示させる方法はございますでしょうか。

どうぞ宜しくお願い申し上げます。


-----
[サーバ]
 PHPバージョン: PHP5.3.3
 DB: MySQL5.0.95
[modx]
 バージョン: modx-1.0.10J
[クライアント]
 ブラウザ: chrome
-----
アバター
yama
管理人
記事: 3154
登録日時: 2009年7月29日(水) 02:50

Re: 動的に生成されたサイトの引越しの件で

投稿記事by yama » 2013年6月29日(土) 19:18

これは複雑な事情があるのですが、元を手繰るとApacheのmod_rewriteの問題です。(mod_rewriteを通じて渡されるマルチバイト文字列は必ずurlencodeされる仕様)
現在のEvoはmod_rewriteの制約を受けずにURLの処理ができるようになっているので、改善可能と思います。後で、できれば修正パッチを作ってみます。
mojira
メンバー
メンバー
記事: 85
登録日時: 2009年10月04日(日) 14:25

Re: 動的に生成されたサイトの引越しの件で

投稿記事by mojira » 2013年6月30日(日) 01:47

yamaさん、 いつもお世話になり申し訳ございません!
yama さんが書きました:これは複雑な事情があるのですが、元を手繰るとApacheのmod_rewriteの問題です。(mod_rewriteを通じて渡されるマルチバイト文字列は必ずurlencodeされる仕様)
現在のEvoはmod_rewriteの制約を受けずにURLの処理ができるようになっているので、改善可能と思います。後で、できれば修正パッチを作ってみます。


修正パッチの件、ありがとうございます。

なるほど、その様な仕様になっているのですね、

.htaccessでRewriteRuleを使い変更するページ分リダイレクト指定する方法もあるのかな・・と考えています。
そこら辺り全然詳しくないので、ネットで情報を仕入れながらRewriteRuleなどを変更・テストしてみようと思います。

色々とありがとうございます。 m(_ _)m
アバター
yama
管理人
記事: 3154
登録日時: 2009年7月29日(水) 02:50

Re: 動的に生成されたサイトの引越しの件で

投稿記事by yama » 2013年6月30日(日) 07:17

エイリアス文字列は投稿画面で入力されたとおりに格納し、出力もそのまま出力できるように設定を加えようと思いますが、今回の件に関しては結局は意図どおりに動作しないかもしれません。URLを通じて渡される文字列は、MODXに限らずあらゆるウェブアプリケーションにおいて、それなりの動作目的が付加されるものなので、たとえば今回の例だと、00575という文字列がリソースIDとして解釈される可能性があります。

viewtopic.php?p=6607#p6607
RewriteRuleを用いるのであれば、上記プラグインを利用するほうが手軽だと思います。このプラグインは301コードを出力しますが、通常のページのように200を渡すように変更すれば「URLを変えない」という意図どおりの動作になると思います。
(検索エンジン最適化という本来の意味では、301を渡して「URLを変更しました」と伝えるほうがよいかもしれませんが)
アバター
yama
管理人
記事: 3154
登録日時: 2009年7月29日(水) 02:50

Re: 動的に生成されたサイトの引越しの件で

投稿記事by yama » 2013年7月01日(月) 10:22

modx-1.0.10J-r2-b1.zip
(1.65 MiB) ダウンロード数: 306 回
修正量が多いためパッケージを添付します。もし可能であれば当パッケージでアップデートの上試していただければと思います。
投稿画面からの入力に関しては、エンコードせずそのまま保存するようにしました。(ただしstripAlias処理を行なうプラグインをセットしていない場合に限る)
出力に関しては、グローバル設定の「XHTML形式のURL」を「いいえ」にすれば、「&」などの文字を変換せずそのまま出力します。

https://github.com/modxcms-jp/evolution ... its/stable
その他の変更点は、上記コミットログの6月26日以降のログのとおりです。

今回の改修では「detail.html?id=00575」などのURLを意図どおり処理できないかもしれませんが、その場合はコアで対応するのは難しいため(技術的には可能ですが副作用が発生しそうです)、プラグインなどで対応するのが無難だと思います。
mojira
メンバー
メンバー
記事: 85
登録日時: 2009年10月04日(日) 14:25

Re: 動的に生成されたサイトの引越しの件で

投稿記事by mojira » 2013年7月01日(月) 10:53

yamaさん、いつもありがとうございます。

yama さんが書きました:
modx-1.0.10J-r2-b1.zip
修正量が多いためパッケージを添付します。もし可能であれば当パッケージでアップデートの上試していただければと思います。
投稿画面からの入力に関しては、エンコードせずそのまま保存するようにしました。(ただしstripAlias処理を行なうプラグインをセットしていない場合に限る)
出力に関しては、グローバル設定の「XHTML形式のURL」を「いいえ」にすれば、「&」などの文字を変換せずそのまま出力します。


大変な作業をお願いする事となってしまい、本当に申し訳ございません。
お送り頂いた、ファイルで確認してご報告差し上げます。

yama さんが書きました:https://github.com/modxcms-jp/evolution-jp/commits/stable
その他の変更点は、上記コミットログの6月26日以降のログのとおりです。


ありがとうございます。
確認してみます。


yama さんが書きました:今回の改修では「detail.html?id=00575」などのURLを意図どおり処理できないかもしれませんが、その場合はコアで対応するのは難しいため(技術的には可能ですが副作用が発生しそうです)、プラグインなどで対応するのが無難だと思います。


了解いたしました。
意図したURLと為らない場合には教えて頂いた、seo301redirectなども試してみます。

お忙しいところご対応頂いたこと、重ねて御礼申し上げます。
mojira
メンバー
メンバー
記事: 85
登録日時: 2009年10月04日(日) 14:25

Re: 動的に生成されたサイトの引越しの件で

投稿記事by mojira » 2013年7月02日(火) 09:48

yamaさん お疲れさまです。

お送り頂いた、modx-1.0.10J-r2を早速試してみました。
URLに関しては、意図していた通りに表示されましたがyamaさんからご指摘頂いていたように、
表示された文字列がリソースIDとして解釈され、別のページが表示されるか、404用のリソース(TOPページ)が表示される結果となりました。

そこで、教えて頂いたURLを参考に「seo301redirect」を試してみます。
動的ページは700ページを超えるのですが、検索エンジンに認知されるまでは、seo301redirect使い運用してみたいと思います。

時間をかけて制作して頂いたのに、大変申し訳ございませでした。

また、的確なアドバイスを頂き、ありがとうございました。
アバター
yama
管理人
記事: 3154
登録日時: 2009年7月29日(水) 02:50

Re: 動的に生成されたサイトの引越しの件で

投稿記事by yama » 2013年7月02日(火) 11:28

今回の改修はもともと必要なことだったので、結果的にはよかったと思います。テストにもお付き合いいただけましたし、助かります。
700ページもあると大変だと思いますが、seo301redirectでやってる処理は簡単なので、ある程度はパターン化も可能です。相談いただければ調整してみますよ。