1

これは私にとってまったく新しい世界なので、私を気楽に見てください.

だから私は小さなcmsを構築し、GETを使用してurlのpageIDまたはページパーマリンクを制御しました。クエリ文字列を介して1つの変数のみを渡す場合、スクリプトは正常に機能しています

たとえば、私のhtaccess:

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

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

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

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

post-title が parent-title の子である場合。URL を使用するにはどうすればよいですか

http://site.com/parent-title/post-title?
4

1 に答える 1

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 のエイリアスに似ているか、Windows のショートカットに似ています) を使用します。これらは通常、シンボリック リンクされたファイルです。または、少なくともこれが理由を理解する方法です。次に、Rewrite Engine を使用することを Apache に伝えます。次の 2 行は非常に重要で、URL の書き換えを実際には存在しないパスのみに制限します。これにより、たとえば、以下のルールが example.com/images/logo.png と一致しなくなります。1 つ目は !-d フラグを使用して既存のディレクトリを防止し、2 つ目は !-f フラグを使用して既存のファイルを無視することを意味します。次の 3 行は、実際の URL 書き換えコマンドです。

于 2013-01-30T23:48:25.293 に答える