0

免責事項:私は mod_rewrite や regex があまり得意ではありません。

ルート .htaccess に次のものがあります。

RedirectMatch 301 ^(.+\.pdf)$ files/$1

私が達成したいのは.pdf 、ルート フォルダー内の拡張子を持つすべてのファイルがサブディレクトリにリダイレクトされること/filesです。

.pdf問題は、これがサイト上のすべてに一致し、サブフォルダーにあるときに再発するように見えることです。

mydomain.com/some.pdfmydomain.com/files/some.pdf期待通りになる。

でも:

mydomain.com/sub/some.pdfmydomain.com/files/files/files/files/files/files/sub/some.pdfこのURLを一切書き換えたくない場合になります。私はそれが無限ループにヒットすると仮定していますが、何度もリダイレクトした後にキャンセルされます。

あなたの助けに感謝します。

4

1 に答える 1

1

RedirectMatch 301 ^([^/]+\.pdf)$ files/$1

ここで重要なのは、パターンの一部として取得されないように、[^/]+代わりに使用することです。これにより、ルート ディレクトリ内の一致する pdf ファイルのみにパターンが分離されます。.+/

于 2013-03-21T17:04:45.107 に答える