我需要以下示例
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)中的子目录,因此不仅仅是重命名一个文件夹。
$ var1,$ var2,$ var3是根据accountid,user等生成的物理文件路径(现在无法更改) $ foo是一个文件名
所以我只是在寻找适当的重写规则,可以简单地处理“$ var1”并基本上忽略其余的。我想在规则中包含“/ a / b /”,因为代码中可能存在其他可能被此规则捕获的“/ b /”实例。
答案 0 :(得分:1)
这就是你想要的:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^a/b/(.+)/newsubdir/c/(.+)/(.+)/(.+).mp3 /a/b/$1/subdir/c/$2/$3/$4.mp3
答案 1 :(得分:0)
通过httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在.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]