ホームページ  >  に質問  >  本文

.htaccess を使用して、クエリ文字列を介してファイル パスをファイル名に書き換えます

クエリ文字列を使用してファイル パスを書き換えるのに問題があります

次のような URL を取得しようとしています:

https://url.com/products/1_Samsung_Galaxy

そしてサーバーへのリクエストを次のように書き換えます:

https:url.com/model.php?id=1&title=Samsung_Galaxy

これまでの私の htaccess は次のようになります:

リーリー

現在の構成では、リクエストはmodel.phpと同じディレクトリにあるproducts.phpという名前のファイルに送信されますが、一部のスクリプトファイルがproducts.php内で相対パスで参照されているため、別のディレクトリにあるように見えます。含まれるオブジェクトが存在しない場合は例外をスローします。

実のところ、私の主な問題は、Apache の構文やその仕組みが分からず、Apache について学べるリソースを見つけるのに苦労していることです。何らかの理由で、Apache のドキュメントはあまり役に立ちません。 Apache ファイルの作成方法を学習するための優れたリソースがあれば、ぜひチェックしてみたいと思います。

P粉035600555P粉035600555266日前500

全員に返信(1)返信します

  • P粉463824410

    P粉4638244102024-01-02 10:59:01

    あなたの質問は少し曖昧ですが、これがあなたが探しているものだと思います:

    リーリー

    これらのルールは、http サーバーのホスト構成に実装されている場合に機能します。ファイルにアクセスできない場合は、http ホストの DOCUMENT_ROOT フォルダーにある分散構成ファイル (「.htaccess」) でファイルにアクセスすることもできます。

    あなたの試みとの主な違い:

    • 宛先パスは 絶対 パスとして記述されます。これにより、リクエストが別のフォルダーに書き換えられるという問題が解決されます。
    • 例外リライトを最初に /model.php に実装します。これにより、ルールは上から下に処理されるため、ファイルの上位で実行されます。これにより、いくつかの条件が節約されます。

    また、「Apache 構文に慣れていない」ため、それを学ぶためのリソースを見つけるのに苦労するともおっしゃっていました。

    Apache モジュールの公式ドキュメントを常にお勧めします。これらは優れた品質であり、素晴らしい例を提供しています:

    https://httpd.apache.org/docs/current/mod /mod_rewrite.html

    返事
    0
  • キャンセル返事