suin.io

Simplified URLs 1.0 アップデート

suin2005年1月13日

問題ありなハックだったSimplified URLs(簡易URL)ですが、仕様を大幅に変更することで安定した動作が可能になりました。作動試験を兼ねてこのサイトにも導入してみました :-D 現時点では僅かな延滞が出ただけで正常に作動中。

もし試してみたいという方は下記URLよりダウンロードできます。ただし、言うまでもなく、まだまだ試験段階ですので各人の責任に基づいて使用してください。このスクリプトにはサポートは有りません。バグ報告・アドバイスはBBSまで。

http://www.suin.jp/download/simplified_url_100.zip

ここからは、なぜ前バージョンとうってかわって安定するようになったのかを説明します。(専門的)

まず、前バージョンが失敗した決定的な弱点が相対URLです。ほとんどのモジュールで不統一に相対URLやHTML、XHTMLに準拠しない記述を使っていたため、あのモジュールではこの置換、このモジュールではこういった正規表現と、一つ穴を塞ぐたびに別の穴があくというスパイラルに陥っていました。結果的に煩雑な置換ルールが増えるばかりで良い結果が得られませんでした。

では、なぜ相対URLなどが弱点になってしまっていたか。それは置換の手法にあります。前バージョンでは相対URLから直接に静的URL置換処理をほどこしていました。またそれと同時に画像やactionのパスの絶対URL化を進行させていました。つまり「相対URLから絶対URLへの変換」と「動的URLから静的URLへの置換」が一つの処理に混在し、余計にややこしくなり、上手く相対URLに対応できませんでした。

そこでこの問題点を踏まえて検討したところ、「絶対URL化」と「静的URL化」を分離し、段階を踏んだ処理方法を思いつきました。1段階目では集中的にURL絶対化をし、2段階目で集中的に静的URL化を行う。これによって単純な置換ルールを数個用意するだけで飛躍的に安定な処理を実現しました。現行のバージョンの安定度で言えばおそらくほとんどのモジュールで問題なく動作すると思います。 :-)

余談

このハックでもできないこと

  • Googleのページランク向上 …このハックはページランク向上を少しお助けするだけです。約束はできません。
  • ヘッダのURLまで簡易化 …PHPのスクリプトが出力するheader("Location:")などPHP内部のURLまでは簡易化できません。
  • 知らないページの簡易化 …このハックが知っているのはXoopsのコンテンツでディレクトリ3層以内のものです。それ以外のページでは簡易化は起こりません。他人のサイトは無論知りません :-)
RELATED POSTS