0

次の例が必要です

http://www.domain.com/a/b/$var1/newsubdir/c/$var2/$var3/$foo.mp3

に書き換える:

http://www.domain.com/a/b/$var1/subdir/c/$var2/$var3/$foo.mp3

私のコードは、'subdir' の代わりに 'newsubdir' を呼び出す必要があります。これは多くの異なる変数サブディレクトリ ($var1) 内のサブディレクトリであるため、1 つのフォルダーの名前を変更するだけの問題ではありません。

$var1、$var2、$var3 は、アカウント ID、ユーザーなどに応じて生成される物理ファイルパスです (現在は変更できません) $foo はファイル名です

したがって、単純に「$var1」を処理し、残りを基本的に無視できる適切な書き換えルールを探しています。「/a/b/」をルールに含めたいのですが、このルールに引っかかる可能性のあるコードに「/b/」の他のインスタンスが存在する可能性があるためです。

4

2 に答える 2

1

これは、あなたの望むことですか:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^a/b/(.+)/newsubdir/c/(.+)/(.+)/(.+).mp3 /a/b/$1/subdir/c/$2/$3/$4.mp3
于 2013-04-02T20:04:23.810 に答える
0

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^(a/b)/([^/]+)/subdir/(c)/([^/]+)/([^/]+)/([^.]+\.mp3)$ /$1/$2/newsubdir/$3/$4/$5/$6 [L,R=302,NC]
于 2013-04-02T19:56:43.957 に答える