複数のクエリ文字列でルールを書き換える

Acr0no

私はhtaccessが初めてです。複数のクエリ文字列を含むWebサイトで作業しています。次のようなさまざまなクエリ文字列のURLを書き換える必要があります。

  1. /path_to_website/file.php?product=var1&country=0&pag=1から/ path_to_website / var1 /
  2. /path_to_website/file.php?product=var1&country=0&pag=var2から/ path_to_website / var1 / var2
  3. /path_to_website/file.php?product=var1&country=var2&pag=1から/ path_to_website / var1 / var2 /
  4. /path_to_website/file.php?product=var1&country=var2&pag=var3から/ path_to_website / var1 / var2 / var3

ご覧のとおり、パラメーターの数が同じであるため、問題は2〜3回の書き換えです(問題がこれである場合)。私はhtaccessファイルでこれを行いました:

###BLOCK 1#######

RewriteCond %{QUERY_STRING} ^$

RewriteRule ^([^/]+)/$ /path_to_website/modules/file.php?product=$1&country=0&pag=1&rew=1 [L]

RewriteCond %{QUERY_STRING} ^(.*)=(.*)&country=0&pag=1$

RewriteCond %{QUERY_STRING} !^.*rew=1.*$

RewriteRule ^.*$ /path_to_website/%2/? [R=301,L]

###BLOCK 2#######

RewriteCond %{QUERY_STRING} ^$

RewriteRule ^([^/]+)/([^/]+)/$ /path_to_website/modules/file.php?product=$1&country=0&pag=$2&rew=1 [L]

RewriteCond %{QUERY_STRING} ^(.*)=(.*)&country=0&(.*)=(.*)$

RewriteCond %{QUERY_STRING} !^.*rew=1.*$

RewriteRule ^.*$ /path_to_website/%2/%4/? [R=301,L]

###BLOCK 3#######

RewriteCond %{QUERY_STRING} ^$

RewriteRule ^([^/]+)/([^/]+)/$ /path_to_website/modules/file.php?product=$1&country=$2&pag=1&rew=1 [L]

RewriteCond %{QUERY_STRING} ^(.*)=(.*)&(.*)=(.*)&pag=1$

RewriteCond %{QUERY_STRING} !^.*rew=1.*$

RewriteRule ^.*$ /path_to_website/%2/%4/? [R=301,L]

###BLOCK 4#######

RewriteCond %{QUERY_STRING} ^$

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ /path_to_website/modules/file.php?product=$1&country=$2&pag=$3&rew=1 [L]

RewriteCond %{QUERY_STRING} ^(.*)=(.*)&(.*)=(.*)&(.*)=(.*)$

RewriteCond %{QUERY_STRING} !^.*rew=1.*$

RewriteRule ^.*$ /path_to_website/%2/%4/%6/? [R=301,L]

どうすればこれを修正できますか?製品と国を検索する場合を除いてすべてが機能するためです!= 0エンジンはブロック2で停止します。この問題で立ち往生しているので、誰かが私を助けてください。どうもありがとう!

編集

答えてくれてありがとう@ RavinderSingh13。私はあなたのルールを次のように試しました:

RewriteCond %{QUERY_STRING} ^$
############your rule###########
RewriteRule ^([\w-]+)/?$ file.php?product=$1&country=0&pag=1 [L]
RewriteCond %{QUERY_STRING} ^(.*)=(.*)&country=0&pag=1$
RewriteRule ^.*$ /path_to_website/%2/? [R=301,L]

このルールによる書き換えはpath_to_website / product /ですが、ページは「ERR_TOO_MANY_REDIRECTS」では機能しません。私もあなたのルールだけで試しました:

RewriteRule ^([\w-]+)/?$ file.php?product=$1&country=0&pag=1 [L]

この場合、書き換えはまったく機能せず、クエリ文字列を出力するだけです。また、次のようにrew = 1キーを試してみました。

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([\w-]+)/?$ /aziende_agrarie/modules/risultato_ricerca.php? 
prodotto=$1&provincia=0&pag=1&rew=1 [L]
RewriteCond %{QUERY_STRING} ^(.*)=(.*)&provincia=0&pag=1$
RewriteCond %{QUERY_STRING} !^.*rew=1.*$
RewriteRule ^.*$ /aziende_agrarie/%2/? [R=301,L]

書き換えはpath_to_website / productで機能しますが、2のページを変更すると、ブラウザーのURLはpath_to_website / product /?product = var1&country = 0&pag = 2になります。したがって、product / 2 /のリライトを挿入すると、「file.php?product = var1&country = 0&pag = var2」のリライトは次のようになります。

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([\w-]+)/([\w-]+)(?!=/)$ /aziende_agrarie/modules/risultato_ricerca.php? 
prodotto=$1&provincia=0&pag=$2&rew=1 [L]
RewriteCond %{QUERY_STRING} ^(.*)=(.*)&provincia=0&(.*)=(.*)$
RewriteCond %{QUERY_STRING} !^.*rew=1.*$
RewriteRule ^.*$ /aziende_agrarie/%2/%4/? [R=301,L]

など。私は何かが恋しいですか?あなたの助けをどうもありがとう:)

RavinderSingh13

表示されているサンプルに基づいて、.htaccessファイルのルールセットに従ってください。また、URLをテストする前に、必ずキャッシュをクリアしてください。

RewriteEngine ON
##For file.php?product=var1&country=0&pag=1
RewriteRule ^([\w-]+)/?$ file.php?product=$1&country=0&pag=1 [L]

##For file.php?product=var1&country=0&pag=var2
RewriteRule ^([\w-]+)/([\w-]+)(?!=/)$ file.php?product=$1&country=0&pag=$2 [L]

##For file.php?product=var1&country=var2&pag=1
RewriteRule ^([\w-]+)/([\w-]+)/$ file.php?product=$1&country=$2&pag=1 [L]

##for file.php?product=var1&country=var2&pag=var3
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)$ file.php?product=$1&country=$2&pag=$3 [L]

編集

フォーム送信を伴うGETリクエストと、カスタムページネーターを使用したhrefがありました。私は問題を解決しました。「path_to_website /?product = var1&country = var2&page = 1」などのクエリ文字列を残したため、問題はhrefにありました。pag1ではクエリ文字列hrefを「/ product / country」に置き換え、他のhrefではこれを解決しました。 。送信イベントで、カスタムブロック1とブロック3のルールを残し、paginatorhref用に書き換え用のルールを作成しました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

複数のURLのクエリ文字列を使用してルールを書き換えます

分類Dev

IIS 7書き換えルール-同じページ、1つまたは複数のクエリ文字列パラメータを書き換えます

分類Dev

クエリ文字列のクエリパラメータを置き換えるためのnginx書き換えルールの書き方

分類Dev

複数レベルのURLを書き換え、最後にクエリ文字列を配置します

分類Dev

クエリ文字列をパスに書き換える.htaccessルール

分類Dev

ルールのURLをクエリ文字列を除いて小文字に書き換える

分類Dev

複数ページのクエリ文字列のhtaccess書き換え

分類Dev

複数のクエリ文字列を使用したApacheの書き換え

分類Dev

クエリ文字列リダイレクトのhtaccess書き換えルール?

分類Dev

クエリ文字列を使用してルールを書き換えます

分類Dev

SQL同じテーブルの単一のフィールド内の複数の文字を単一のクエリで置き換える方法

分類Dev

サブディレクトリをクエリ文字列に変換するための書き換えルールを作成する方法

分類Dev

Rのループを使用せずに、文字ベクトル内の複数の文字列を置き換える

分類Dev

「.php」拡張子を削除してクエリ文字列を書き換えるmod_rewriteルール

分類Dev

クエリ文字列を別のクエリ文字列に書き換える

分類Dev

書き換えルールでクエリ文字列を追加しようとしています

分類Dev

Nginxはクエリ文字列へのルールパスを書き換えます

分類Dev

.htaccess複数のルールで書き換える

分類Dev

SQLクエリで複数のNOTEXISTS句を書き換える可能な方法は? `

分類Dev

動的サブディレクトリを持つクエリ文字列URLの.htaccess書き換えルールに関するヘルプが必要

分類Dev

テキストファイルのシェルスクリプトで複数の文字列を複数の値に置き換える方法

分類Dev

.htaccessで複数の書き換えルールを作成する方法

分類Dev

Java:複数のルールに従って文字列を置き換える

分類Dev

Azure APIManagementでクエリ文字列パラメーターの書き換えURLを指定する方法

分類Dev

コンソールで複数行を書き換える

分類Dev

複数の書き換えルール

分類Dev

Pandasシリーズの複数の文字列をルックアップテーブルdfの値に置き換える

分類Dev

複数のファイル内の複数の文字列を置き換える

分類Dev

1 つの動的な空のクエリ文字列を持つ複数のクエリ文字列の htaccess の書き換え

Related 関連記事

  1. 1

    複数のURLのクエリ文字列を使用してルールを書き換えます

  2. 2

    IIS 7書き換えルール-同じページ、1つまたは複数のクエリ文字列パラメータを書き換えます

  3. 3

    クエリ文字列のクエリパラメータを置き換えるためのnginx書き換えルールの書き方

  4. 4

    複数レベルのURLを書き換え、最後にクエリ文字列を配置します

  5. 5

    クエリ文字列をパスに書き換える.htaccessルール

  6. 6

    ルールのURLをクエリ文字列を除いて小文字に書き換える

  7. 7

    複数ページのクエリ文字列のhtaccess書き換え

  8. 8

    複数のクエリ文字列を使用したApacheの書き換え

  9. 9

    クエリ文字列リダイレクトのhtaccess書き換えルール?

  10. 10

    クエリ文字列を使用してルールを書き換えます

  11. 11

    SQL同じテーブルの単一のフィールド内の複数の文字を単一のクエリで置き換える方法

  12. 12

    サブディレクトリをクエリ文字列に変換するための書き換えルールを作成する方法

  13. 13

    Rのループを使用せずに、文字ベクトル内の複数の文字列を置き換える

  14. 14

    「.php」拡張子を削除してクエリ文字列を書き換えるmod_rewriteルール

  15. 15

    クエリ文字列を別のクエリ文字列に書き換える

  16. 16

    書き換えルールでクエリ文字列を追加しようとしています

  17. 17

    Nginxはクエリ文字列へのルールパスを書き換えます

  18. 18

    .htaccess複数のルールで書き換える

  19. 19

    SQLクエリで複数のNOTEXISTS句を書き換える可能な方法は? `

  20. 20

    動的サブディレクトリを持つクエリ文字列URLの.htaccess書き換えルールに関するヘルプが必要

  21. 21

    テキストファイルのシェルスクリプトで複数の文字列を複数の値に置き換える方法

  22. 22

    .htaccessで複数の書き換えルールを作成する方法

  23. 23

    Java:複数のルールに従って文字列を置き換える

  24. 24

    Azure APIManagementでクエリ文字列パラメーターの書き換えURLを指定する方法

  25. 25

    コンソールで複数行を書き換える

  26. 26

    複数の書き換えルール

  27. 27

    Pandasシリーズの複数の文字列をルックアップテーブルdfの値に置き換える

  28. 28

    複数のファイル内の複数の文字列を置き換える

  29. 29

    1 つの動的な空のクエリ文字列を持つ複数のクエリ文字列の htaccess の書き換え

ホットタグ

アーカイブ