1

これにタイトルを付ける方法がわかりませんでした。多くの調査の後、必要なものが見つかりません。うまくいけば、これを十分に説明できます!

私の URL 構造は によって処理されますindex.php。これは URL 全体を取得し、/ を分割して配列に整理し、ユーザーの転送先を確認します。ここに例として。

現在、ほとんどのガイドの問題htaccessは、事前に設定されたクエリ文字列ではなく、既知のクエリ文字列の使用に基づいて例を示していることです。URL を取得して分割しているため、無限に長くなる可能性があります。別の例として、上記に新しいサブキャットを追加できます。

そして、これはまだ適切に転送されます (基本的に、スクリプトは自動的に最初のアイテムを取得してテンプレートをプルし、次にプルする記事 ID として使用する最後のアイテムを取得します。その間にあるものはすべて、独自のテンプレートを持つこともでき、そうでない場合は、サブカテゴリ内のすべてのアイテムを表示する一般的なもの)。

htaccess後ですべてを取得し、mysite.com/それを単一のクエリとしてプルしてインデックスに渡すために使用しようとしています。元。(上記を使用):

URL入力:www.mysite.com/?cat1/subcat1/subcat2/subcat3/subcat4/page1

index.php に渡されるクエリ:cat1/subcat1/subcat2/subcat3/subcat4/page1

ここでの目標は、最終的に「?」を削除することです。mysite.com/URLをクリーンアップした後、より似ていmysite.com/cat1/subcat1ます。

私の研究に関しては、既知のクエリ文字列 ( など?cat1=&subcat1=) に基づいたものしか見つけることができませんでしたが、異なるものは異なる深さを持つため、動的である必要があります。htaccessこれが私のインデックス側の出番ですが、分析のためにクエリ全体を1つの文字列として転送する方法がわかりません。

どんな助けでも大歓迎です。うまくいけば、これは理解するのに十分明確でした. ご不明な点がございましたら、お気軽にお問い合わせください。

前もって感謝します!

アップデート

だいぶ効いてきました。これが私が今使っているコードです:

RewriteRule  ([^/]+) index.php?%{REQUEST_URI}%{QUERY_STRING} [nc]

これはほとんどの場合機能しますが、常に配列項目を次のように設定します。

0 => 空
1 => index.php

2 => (クエリの最初の部分、例: "cat1")

上記のコードをさまざまな方法で変更しようとしましたが、知識が不足しているため、適切にセットアップすることができなかったと思います (多かれ少なかれ、配列スペース 3 にあるものはスペース 0 にある必要があり、現在の 0 /1 (empty/index.php) を削除する必要があります。

4

2 に答える 2

1

どうですか
RewriteRule (.+) index.php?url=$1 [nc]

index.php よりも

<?php    echo $_GET['url']; ?>
    output: cat1/subcat1/subcat2/subcat3/subcat4/page1

カテゴリを手動で分割する必要があります。

于 2012-07-23T14:45:41.680 に答える
0

あなたの問題を解決する方法はよくわかりませんが、あなたが話している問題は URL の書き換えと呼ばれます。

これは、PHP およびコンテンツ管理システムで物事を整理する一般的な方法です。基本構想。このフレームワークは、MVC またはモデル ビュー コントロールと呼ばれます。

特定のフレームワーク/csmであるcake-phpでは、URLの書き換えを完全に無効にできることを知っています。ただし、これを行うと、検索エンジンの最適化が悪化すると思います。

于 2012-07-23T14:24:16.193 に答える