2012-05-05 6 views
1

www.example.com/pageone.htmlの代わりにwww.example.com/pageone/リンクとして他のページを表示させようとしています。.htaccessはどのように機能しますか?

問題は、私がコマンドを理解していないので、.htaccessとそれを使って私が混乱させる方法を読んでいます。

私は最初のステップは、しかし、.htaccessファイルでこれを書くことであることを理解し

:!このステップの後

RewriteEngine On 

(、私は絶対にないアイデアをいただきました!-dていないにも{REQUEST_FILENAME}も^ 。*)とそのすべてのプログラミングテキスト。私が参照できる文書はありますか?

それとも誰も私に私が

www.example.com/pageone.html 

、に行きたい場合、私はURLに入力する必要がありますすべては

www.example.com/pageone/ 
であることを理解することが.htaccessファイルの設定方法に関する簡単な説明を提供することができます

とPHPファイルなどもありますか?

+1

にサーバーでsliently書き換えられます..and私はグーグルを使用しています、FYI - 私は私のキーワードが少し遅れているそのわずかだと思います。私はこの文書を見つけることができないようです。 –

+1

あなたが使いたいキーワードは 'mod_rewrite'です:http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html – AlienWebguy

答えて

4

まず、 e Official Documentation。あなたの特定の問題を解決するために、私はこの方法については行くだろう:

RewriteEngine on #Turn on rewrite 

RewriteCond %{REQUEST_FILENAME} !-f #If requested is not a filename... 
RewriteCond %{REQUEST_FILENAME} !-d #And not a directory 
RewriteRule ^([^/]+)/?$ /$1.html [L] #Preform this redirect 

RewriteCond sが唯一の次の次のルールに適用されます。複数のルールを作成する場合は、それぞれの条件を記述する必要があります。

Apacheサーバーは要求されたパス(www.example.com/の後ろのすべて)を照合して、指定したルールと一致するかどうかを確認します。その場合には、一つだけ存在する。

^([^/]+)$ 

この正規表現は、オプションのスラッシュ続い/を大幅に削減されていない文字、任意の数と一致。一致するものが見つかった場合は、要求を2番目のパラメータに書き換えます。/$1.html$1は、大文字と小文字の間にマッチしたものを意味します。

フラグ[L]フラグは、ルールが一致した場合にルールの検索を停止するように書き換えエンジンに指示します。

そう締結する、www.example.com/whatever/www.example.com/whatever.html

+0

さて、私はこのmod_rewriteのことについてもう少し学び始めたいと思います。リンクと説明をありがとう! –

+0

うーん、これもPHPでもできますか?それとも他の拡張機能ですか? –

+0

@RenoYeo:これはApacheのもので、実行しているサーバーに属します。 PHP(つまりサーバー側言語)で処理を制御したい場合は、PHPですべてのURLを単一のエントリポイントに書き換えてからそこから制御します。 (www.example.com/some/pages/をwww.example.com/index.php?route=some/pages/にリダイレクトし、それを制御するためにPHPを使用する)。 –

2
RewriteEngine on 
RewriteBase/

RewriteRule ^([^/]+)$ /$1.html 

これは、この書き換えに必要なものです。これは、基本的には、スラッシュではない何かが変数$1に割り当てられます」と言う。だから、/ fooはあなたがここにApache httpd mod_rewriteを見ることができる公式ドキュメントについて

+0

OPが説明を求めましたどのように機能するのですか?答えを出すことは素晴らしいことですが、OPが彼が望むやり方を理解できなければ、それは価値がありません。 –

+0

だから私は41分前にコメント内のドキュメントにリンクしています:) – AlienWebguy

+0

Right、what's RewriteBase /? URLの後ろに/を追加するだけですか? –

1

を/foo.htmlを指すでしょう。
はGoogleであなたが検索することができますurl rewriting tutorialなど
奇妙な文字は正規表現と呼ばれ、学習するのは簡単ではありませんが、多くのチュートリアルがあります。
PS:これはストレートな回答ではありませんが、どのようにURLの書き換えが機能するかを理解してください。

+0

かなり基本的な答えですが、依然として関連しています。 –

関連する問題