基于mypage.php
上的动态链接调用Flash电影。 mypage.php
嵌入了Flash播放器。链接看起来像mypage.php?moviefolder=folder1/folder2&swfTitle=sometitle.swf
。在每个链接点击(每个href)上解析mypage.php
。 Folder2
始终相同,但movieTitle.swf
是动态的。有时会调用子文件夹(folder2/subfolder2/sometitle.swf
)。
mod_rewrite可以允许查询字符串反映folder2,而是默默地提供folder3
以及偶尔的子文件夹吗?我会将所有文件放在folder3中。目标是让用户不知道swfs在哪里。再次提前致谢!
答案 0 :(得分:1)
使用RewriteCond
匹配查询字符串的内容(因为它们未在RewriteRule
指令中读取,您可以提取swfTitle=sometitle.swf
并将folder1/folder3
替换为{ {1}}中的{1}}。
这将使用像folder1/folder2
这样的正则表达式模式来匹配下一个moviefolder
(表示另一个查询参数)的所有内容。
([^&]+)
希望您不会得到重写循环,因为重写的&
将不会与第二次匹配。 # 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]
允许不区分大小写的匹配。
我确实设法使用示例输入<{3}}在http://htaccess.madewithlove.be/成功测试了这一点:
folder1/folder3