2011-02-01 5 views
2

サーバがmod_rewriteを使用しているかどうかをクライアントがどのように検出できますか? mod_rewriteのルールの中には、あまり明白ではないものがあることが分かりました。しかし、「SEO Friendly Urls」のようなものもあります。サーバーがmod_rewriteを実行していない限り、どのような動作が可能ですか?サーバがmod_rewriteのが実行されていない限り不可能である行動のどのような種類のApacheがmod_rewriteを使用しているかどうかを検出する

+0

*完全に不可能な動作はありませんが、mod_rewriteなしではごくまれに発生するパターンがあります。 –

+0

Webサーバーソフトウェアは1つだけではありません。 – Gumbo

+0

@ Gumbo♦真ですが、Webサーバーの膨大な大部分はApacheです。あなたが奇妙なHTTPDの別の方法を知っているなら、私はあなたに+1を与えるでしょう。 – rook

答えて

4

本当の答えは "none" です。理論的には、古典的な "SEOフレンドリー" URLを含む、実際のファイルまたはディレクトリによって任意のURLを形成することができます。

のみ状況証拠がある:

  • は、私は考えることができる最善の表示は、サイト全体の構造が.htm .php .htmlファイル拡張子なしのURLで構成されている場合です:

    http://domain.com/slugs/house-warming-party 
    

    除外しますそのURLの可能性がディレクトリであること、

    http://domain.com/slugs/house-warming-party/index.htm 
    http://domain.com/slugs/house-warming-party/index.html 
    http://domain.com/slugs/house-warming-party/index.php 
    http://domain.com/slugs/house-warming-party/index.asp 
    ... whatever other extensions there are ..... 
    
    を要求

    これらの要求は、すべてを失敗した場合、サイトはmod_rewriteのを使用している可能性が非常に高いです。しかし、成功すれば、@ Gumboのように、要求を修正するオプションのMultiViewsでもかまいません。いずれにせよ、これはnowhere近くに安全です!

  • あなたのユースケースが何であるかに応じて、あなたはまた、サイト上で使用されるCMSから物事を控除しようとすることができます。 mod_rewriteをオンにしたWordpressは、オフにした場合とは異なるURL構造を表示します。同じことが、他のほとんどのCMSにとっても当てはまります。もちろん、これは非常に不完全なアプローチでもあります。

  • HTMLリソースとの使用.html/.htm/.php endingは、mod_rewriteの使用に若干の違いがありますが、わからないことがあります。

  • パス情報変数の使用(も貧乏人のmod_rewriteとして知られている)はmod_rewriteの使用に対してやや強く指します:最もURL書き換えツールのような結論

    http://example.com/index.php/slugs/house-warming-party 
    

mod_rewrite( )は、外界に透過的なモジュールであると考えられています。私は外部からそれを検出するための確かな方法がないことを知っており、誰も存在しない可能性があります。

+1

のMultiViewsは同じ動作を可能にします。 – Gumbo

+0

もう一度良い答えを+1してください。 – rook

関連する問題