この ' http://mysite.pl/public?products,BEER/7,shop_shelf ' のような URL を取得し、それをhttp://mysite.pl/index.php?product=BEER/7に書き換えたいと考えています。 htaccess.
何か案は ?
この ' http://mysite.pl/public?products,BEER/7,shop_shelf ' のような URL を取得し、それをhttp://mysite.pl/index.php?product=BEER/7に書き換えたいと考えています。 htaccess.
何か案は ?
疑問符の後のすべてがクエリ文字列であり、RewriteRule
ディレクティブは置換文字列でのみ機能します。RewriteCond
代わりに使用する必要があります。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^products,([-/_\.a-z0-9]*?),[-/_\.a-z0-9]+$ [NC]
RewriteRule ^public$ index.php?product=%1 [NC,L]
'RewriteRule ^products,([a-zA-Z\.\+a-z0-9-_/]*),([a-zA-Z\.\+a-z0-9-]+))$ index.php?product=$1 [L,B,NC]
そこに見られる問題はほとんどありません。「公開」をチェックしていませんか?最初は、アルファベットも混同していると思います。
RewriteRule ^public\?products,([a-zA-Z\.\+-_]+)\/([0-9]+),([a-zA-Z-_]+)$
そのようなことを試してみてください。ただし、テストせずにすばやく記述しました。で始まる文字列のpublic?products,
後に、1 つ以上の文字[a-zA-Z\.\+-_]
(これは$1
ターゲットに含まれます) で構成されるサブパターンが続き、その後/
に 1 つ以上の文字[0-9]
( $2
) で構成される別のサブパターンが,
続き、最後に文字を含む別のサブパターン[a-zA-Z-_]
($3
必要な場合)
私が言ったように、私はそれをテストしていないので、それから始めて、それで遊んでください