2012-04-26 12 views
1

私にとってはまったく新しい世界なので、簡単にどうぞ。唯一たとえば、クエリ文字列phpと.htaccessを使ったかなりのURL

を通じて私のhtaccessファイルを1つの変数を渡すときだから私は構築されており、リトルCMSとurl.IでたpageIDやページのパーマリンクを制御するためにGETを使用しているスクリプトが正常に動作している

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9]+)$ index.php?p=$1 
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?p=$1 

インデックスファイルでIDまたはパーマリンクを制御してページを呼び出すことができます。私が理解していないことの1つは、子ページが呼び出されたときに、親パーマリンクをURLに含める方法です。

もう1つの例です。親の子であるページを呼び出す場合:

http://site.com/index.php?p=post-title 

投稿タイトルが親題の子である場合は、どのように私はURL

http://site.com/parent-title/post-title? 
+0

誰かが 'http:// site.com/parent-title/post-title'をリクエストしたときのようなものです'/index.php?p = post-title&parent = parent-title'のようにあなたのindex.phpコントローラに書き換えられますか? –

+0

私はそれを考えましたが、ポストタイトルを呼び出すときに親のタイトルを自動的に入れる方法があるかどうか疑問に思っていました 私は方法がありますが、mod_rewritesはすべて英語です。 しかし、あなたの質問に答えてください。はい、私はあなたの提案に似ていましたが、まだきれいなURLを残しておきます。 –

+0

それで、あなたは '/index.php?p = parent-title/post-title'のようになりますか? –

答えて

0

ファーストを使用することができ、我々はApacheの.htaccessファイルに私たちのすべてのコードを配置することができます。これは次のようになります。

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^users/(\d+)*$ ./profile.php?id=$1 
RewriteRule ^threads/(\d+)*$ ./thread.php?id=$1 
RewriteRule ^search/(.*)$ ./search.php?query=$1 

ここから始めて、ここで何が起こっているのかを理解してください。最初の行は、Optionsディレクティブを使用してシンボリックリンクをたどるように環境を設定します。これは必要な場合としない場合がありますが、Webホストの中には、一般的なHTTP要求エラーのシンボリックリンク(MacOSXやショートカットのエイリアスに似ています)を使用しているものがあり、通常はシンボリックリンクされたファイルです。次に、Apacheにリライトエンジンを使用することを伝えます。次の2行は、URLが実際には存在しないパスにのみ書き換えられることを非常に重要にしています。これにより、以下のルールがexample.com/images/logo.pngと一致するのを防ぐことができます。最初のコマンドは、既存のディレクトリを!-dフラグで防止し、2番目のコマンドは!-fを使って既存のファイルを無視することを意味します。 次の3行は実際のURL書き換えコマンドです。各行は正規表現のパターンを入力URLと照合しようとするルールを作成します

関連する問題