2012-02-22 136 views
2

我是新来重写,我正在寻找我可以使用的正则表达式,以创建我自己的url重写规则。我想知道如何重写此类网址使用mod重写apache重写路径

https://www.mydomain.com/accout/log/folder1/folder2 

https://www.mydomain.com/folder2 

我想要的目标foder2直接隐藏真实路径。有没有办法如何创建一个虚假的道路?我不得不包括重写代码?

感谢

更新

感谢@ThinkingMonkey,代码是好的,它的工作原理,但有一个处理程序丢失,这就是为什么它没有在工作第一。

+0

这个网站可以帮助你创建你的正则表达式补充一点:http://txt2re.com/ – dom 2012-02-22 15:55:20

回答

1

如果您有权访问conf文件,则可以为folder2创建别名。

Alias /folder2 /accout/log/folder1/folder2 

,并做了

RewriteEngine on 
RewriteBase /folder2 
在放置在 accout/log/folder1/folder2一个 .htaccess


请记住,对于上述工作mod_alias必须启用为Alias是从mod_alias指令。

或者你可以在你的.htaccess

RewriteEngine on 
RewriteBase/

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule^- [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(?:\.\w+|/)$ 
RewriteRule (.*) /$1/ [R,L] 

RewriteCond %{REQUEST_URI} ^(/folder2) 
RewriteRule ^(.*)$ /accout/log/folder1/$1 [L] 

RewriteCond %{REQUEST_URI} ^/accout/log/folder1/folder2 
RewriteRule accout/log/folder1/(folder2)(/(.*))?$ $1$2 [R,L] 
+0

感谢@ThinkingMonkey,是的,我没有mod_alias中在我的服务器上,但可以包含您在.htaccess文件中提供的代码。这非常有帮助。再次感谢。 – 2012-02-23 00:48:54

+0

@Digitalsite欢迎您。 – ThinkingMonkey 2012-02-23 07:06:04

+0

我试过了,但没有奏效。可能是我错过了某些东西,或者代码有问题。你能再次检查吗?谢谢 – 2012-02-23 07:48:41