2013-02-24 47 views
0

我有一个想法是杀了我,因为我不是很好的htaccess。我的网址是http://(www./non-www.)example.com/dir/page/file。 但我想这重定向到目录root/release/.../dir/page/file.htaccess目录重定向版本发布

所以

root/.htaccess 
root/release/1.0/... 
root/release/1.5/... 
root/release/2.0/... 
root/admin/1.0/... 
root/admin/1.5/... 
root/admin/2.0/... 
etc 

如果他们浏览到example.com/admin你去example.com/admin/2.0。但我认为棘手的是,我不希望example.com/ release/version或example.com/admin/ version被看到。

或者我可以只有两个版本release/stablerelease/beta

我希望是有道理的人, 感谢

+0

您认为重写规则将从哪里获得发行版号码? – 2013-02-24 12:48:14

+0

手动输入 – 2013-02-24 17:28:32

回答

0

听起来像最简单的事情将是使一个网页一样example.com/admin是元重定向到example.com/admin/2.0,那么你只是做一个国防部重写回去通用网址。随着您增加版本,只需更改元刷新,因为您的.htaccess mod-rewrite将具有与您的版本编号系统相匹配的reg-ex。

例如:

首先为example.com/admin文件,实现一元刷新在标题:

<meta http-equiv="refresh" content="0;URL='example.com/admin/2.0'"> 

现在做从2.0重新写入(或从任何版本)回哪里你想去的地方:

#first, we need to define the request, in this case, admin/any number 
RewriteCond %{THE_REQUEST} /admin/([0-9]*) 
# now we need to make it look like it's just the plain admin page 
RewriteRule ^$ /admin [R=301,L,NE] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^admin /admin/([0-9]*) [L] 

你需要修复我的REG-EX相匹配,使其2 “点” 0

+0

或者,您可以在没有元刷新的情况下通过专门重定向到目录中所需的版本来完成此操作。 – Dave 2013-02-24 12:54:34