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

我的代码现在需要调用“newsubdir”而不是“subdir”。由于这是许多不同变量子目录 ($var1) 中的子目录,因此不仅仅是重命名一个文件夹的问题。

$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,然后将此代码放在您.htaccessDOCUMENT_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 回答