2

私はフロントエンド開発の方が優れているので、.htaccess301リダイレクトの助けを本当にいただければ幸いです。

/ anything-here / rc /code/を/anything-here/?rc=codeに301リダイレクトしたい

例1: //www.domain.com/any_directory/other_directory/rc/code/は//www.domain.com/any_directory/other_directory/?rc=codeに301リダイレクトする必要があります

例2: //www.domain.com/rc/code/は//www.domain.com/?rc=codeに301リダイレクトする必要があります

また、潜在的なクエリ文字列(任意の数の変数)を保持する必要があります。

例3: //www.domain.com/any_directory/other_directory/rc/code/?variable1=value1&variable2=value2は、//www.domain.com/any_directory/other_directory/?rc=code&variable1=value1&variable2=value2にリダイレクトする必要があります

最後から2番目のダイレクタが「rc」(完全一致)でない場合は、リダイレクトしないでください。

例4: //www.domain.com/any_directory/rc/other_directory/code/はリダイレクトしないでください(「rc」は最後から2番目のディレクトリではありません)

例5: //www.domain.com/code/rc/はリダイレクトしないでください(「rc」は最後から2番目のディレクトリではありません)

例6: //www.domain.com/arc/code/はリダイレクトしないでください(「rc」ディレクトリはありません)

例7: //www.domain.com/rc/はリダイレクトしないでください(「rc」は最後から2番目のディレクトリではありません)

欠落している場合は末尾のスラッシュを追加する別の行があるため、この場合は関係ありません。よろしくお願いします!

4

1 に答える 1

1

あなたはこれを試すことができます:

RewriteEngine On
RewriteBase /Test
RewriteCond %{REQUEST_URI}  ^(.*)/rc/(\w+)/?$
RewriteRule  ^   %1/?rc=%2&%{QUERY_STRING}  [R=301,L]

次のようにリダイレクトしない場合:http://www.domain.com/code/rc/フォルダrcが存在する必要があります。存在しない場合、エラー404が生成されます。

クエリに末尾のスラッシュを追加しないでください。

http://www.domain.com/any_directory/other_directory/?rc=code&variable1=value1

とは異なります:

http://www.domain.com/any_directory/other_directory/?rc=code&variable1=value1/

最後variable1=value1/は間違った値になります。

于 2012-12-13T20:38:53.520 に答える