2012-01-10 1 views
2

これはいつも私を驚かせる。スタックオーバーフローに関する質問をすると、URLにはget文がありません。また、.cgiや.phpのような拡張子もありません。StackOverflowはURLのファイル拡張子とGETパラメータをどうやって避けますか?

静的なhtmlページではありませんが、回答や質問を投稿するとデータベースが変更されるため、データベース駆動型です。

.htaccessの設定と関係がありますか。どのようにして同様の効果を得ることができますか?

phpや他の言語を使用すると、私はこの質問を投稿したような形で、手動で作成せずに動的編集可能なPHPを作成することができます。

+3

http://httpd.apache.org/docs/2.0/misc/rewriteguide.htmlまたはhttp://www.iis.net/download/urlrewrite –

+3

「クリーンURL」または「pretty URL」と「 mod_rewrite " – ceejayoz

+0

mod_rewrite(Apache用)のようなものを見てください。 – Macmade

答えて

7

Pretty/Clean/Fancy URLs

基本的に、Webサーバは、URLのセグメントが実際にPHP/Rubyの/ .NETの/ etcにそれを渡す前のパラメータと、それは「再書き込み」URLをGETしていることを知っています。

たとえば、Apacheはmod_rewriteモジュールを使用してこの動作を実行します。

0

一部のフレームワークは、デフォルトでそのようにしています。

たとえば、YiiやZend Frameworkを見てみると、その効果が得られます。

通常、Webサーバーを登録してその処理を支援します。

1

Mod_rewriteは一例です。それはあなたのアプリケーションで.php拡張子を非表示にするために使用できます。

それともRuby用レールまたはレーキにPythonやRuby用のJavaのものやジャンゴやフラスコのいずれかのようなアプリケーションプラットフォームを使用するか、などなどしている場合など

そのWebサーバが仲介をどのように処理するかについて対話性を処理するために使用しているアプリケーションレイヤーへのリクエスト。私は stackoverflowのために話すことができないもののなどのWSGIにfast_cgiするmod_phpのプラグイン、

3

から、私は一つの共通の方法は、「GET」パラメータを持つものにはかなりのURLを変換するためにmod_rewriteを使用することであることを知っています。多くのソリューションはmod_rewriteをラップしますが、他の方法では[非Apacheの] Webサーバーが含まれます。

このcheetsheetも非常に役に立ちます。

2

これらは、それ以外の場合はかなりやフレンドリーなURLとしても知られ、Clean URLsと呼ばれています。

クリーンなURL、RESTfulなURLやユーザーフレンドリーなURLは、純粋にクエリ文字列が含まれていて、代わりにのみ含まれていない構造 URLです リソースのパス(スキーム[例えばhttp]の後にそして機関 [例えばexample.org]の後)。これは、審美的、ユーザビリティ、または 検索エンジン最適化(SEO)の目的でよく行われます。 ウェブサイトまたはWebサービスのクリーンなURL構造を設計するその他の理由は、 に、個々のリソースが同じURLの下に何年も残っていることを保証することです。 は、ワールドワイドウェブをより安定した有用なシステムにし、 、論理的で、入力が簡単で、人間中心の、そして長命です。

各Webサーバーには、クリーンURLを管理する独自の方法があります。 Apacheは.htaccessファイルのmod_rewrite読み取りルールを使用します。あなたが名前のスクリプトをトリガする要求を取得するためのURLをリライトする方法についての一連のルールを管理するほとんどのWebサーバで

https://stackoverflow.com/search?q=htaccess+rewrite

:人々はこれを使用している方法についてのスタックオーバーフロー上の例がたくさんあります。たとえば、/questions/8811192/question-titleを要求するかもしれませんが、サーバは/mywebsite.php?id=8811192&convention=questionsに書き換えます。そして、あなたのスクリプトがユーザが元々要求したものを知るように、あなたのスクリプトmywebsite.phpがパラメータidとconventionを設定して実行されます。次に、データベースを参照してページを動的に作成します。

クリーンURLの詳細については、Webサーバーのマニュアルを参照してください。

0

URLパスは、ファイルシステム上の物理的な場所に限定する必要はありません。

ウェブアプリケーションでurlを解析し、特定のURLパターンにマッピングされたコードを実行できます。内部のアプリケーション内のmod_rewriteと考えることができます。最新のWebフレームワークのほとんどには、URLベースのディスパッチャがあります。

しかし、cgiスクリプトやcgiのようなアプリケーションの実行(例えば、実際にはfast-cgiプロトコルサーバーであるphp-cgi)を使用している場合は、前述のmod_rewriteなどのソリューションを使用する必要があります使用しているWebサーバーによって異なります。

関連する問題