1

Flash ムービーは、 のダイナミック リンクに基づいて呼び出されますmypage.phpmypage.phpフラッシュプレーヤーが埋め込まれています。リンクは次のようになりmypage.php?moviefolder=folder1/folder2&swfTitle=sometitle.swfます。 mypage.phpリンクがクリックされるたびに解析されます (href ごと)。 Folder2は常に同じですが、movieTitle.swf動的です。サブフォルダーは ( ) と呼ばれることがありますfolder2/subfolder2/sometitle.swf

mod_rewrite を使用すると、クエリ文字列に folder2 を反映させることができますが、代わりにfolder3、時々サブフォルダーと同様に静かに機能しますか? すべてのファイルを folder3 に配置します。目標は、swfs がどこにあるかをユーザーにわからないようにすることです。よろしくお願いします!

4

1 に答える 1

1

a を使用しRewriteCondてクエリ文字列の内容を一致させます (RewriteRuleディレクティブではswfTitle=sometitle.swf読み込まれないfolder1/folder3ためfolder1/folder2moviefolder.

これは、正規表現パターンを使用([^&]+)して、次のものまですべてを一致させ&ます (別のクエリ パラメータを示します)。

# Capture everything after folder2 into %1
RewriteCond %{QUERY_STRING} moviefolder=folder1/folder2([^&]+) [NC]
# Capture everything in the swfTitle param into %2
# Both conditions must be matched...
RewriteCond %{QUERY_STRING} swfTitle=([^&]+) [NC]
# Then silently rewrite mypage.php to substitute folder3,
# and pass in the original swfTitle captured above
RewriteRule ^mypage\.php$ mypage.php?moviefolder=folder1/folder3%1&swfTitle=%2 [L] 

folder1/folder3再書き込みは 2 回目では一致し ないため、再書き込みループが発生しないことを願っています。[NC]大文字と小文字を区別しない一致を許可します。

サンプル入力を使用して、http://htaccess.madewithlove.be/でこれをうまくテストできました。

http://example.com/mypage.php?swfTitle=thetitle.swf&moviefolder=folder1/folder2/thing
---> http://example.com/mypage.php?moviefolder=folder1/folder3/thing&swfTitle=thetitle.swf

http://example.com/mypage.php?moviefolder=folder1/folder2/thing999zzz&swfTitle=thetitle.swf
---> http://example.com/mypage.php?moviefolder=folder1/folder3/thing999zzz&swfTitle=thetitle.swf
于 2013-01-31T02:54:27.887 に答える