Apache:変更可能なデータでルールを書き換える

Apache:変更可能なデータでルールを書き換える

これを私のWebサーバーにリダイレクトする必要があります。

www.hostname.com/path1/path2/123456789到着www.hostname.com/search?q=123456789

このルールをhtaccessファイルに挿入しました。

RewriteRule ^/path1/path2/([0-9]+)$ /search?q=$1 [L,R=301]

しかし、うまくいきません(数字は変数です)。

答え1

.htaccessファイルには前にスラッシュを含めないでください。 「各ディレクトリのプレフィックス(特定のディレクトリの場合は常に同じです)は、RewriteRuleパターンマッチングのために自動的に削除され、相対ディレクトリ(スラッシュまたはプロトコル名が前にない)の後に自動的に追加されます。

.htaccessがどのディレクトリにあるかはわかりませんが、そのディレクトリのプレフィックスを削除する必要があります。

RewriteRule ^path1/path2/([0-9]+)$ /search?q=$1 [L,R=301]

…または…

RewriteRule ^path2/([0-9]+)$ /search?q=$1 [L,R=301]

…または…

RewriteRule ^([0-9]+)$ /search?q=$1 [L,R=301]

関連情報