2011-03-16 26 views
0

在Apache Web服务器上,我想创建一个类型化的URL文件夹以匹配另一个文件夹,并将URL字符串的末尾转换为匹配文件夹的查询字符串。将子文件夹重定向到另一个保留查询字符串

类型化的URL可以是:
http://www.website.net/corp/view/folder1/folder2

而导致浏览过的页面将在内部是:
http://www.website.net/corp/files/?dir=folder1/folder2

我试图在httpd.conf以下规则: RewriteRule ^/corp/view/(.*) /corp/files/?dir=$1 [L],我也得到一个无限循环,有URL是自我重定向...

感谢您的帮助。

回答

0

使用.+代替.*

RewriteRule ^/corp/view/(.+) /corp/files/?dir=$1 [L] 

.*导致无限递归,因为它也是在/corp/files/末的空字符串相匹配。

+0

我尝试了你的建议,但它不起作用。 '。+'或'。*'具有相同的效果,我只是发现它发生了什么:使用IE9中的F12工具,我可以看到'/ corp/view/folder1'被重定向到'/ corp/view/folder1 /index.php/?dir = folder1',到'/corp/view/folder1/index.php/index.php?dir = folder1/index.php',依此类推。 – Velcro 2011-03-16 16:22:58

+0

@Velcro:哦,对不起,我以为你是在重写同一个目录。那么,有没有其他规则可能会与这个规则相冲突? – Gumbo 2011-03-16 17:11:54

+0

我有其他规则,但没有人使用这种模式(我检查过)。顺便说一句,我试图把一个[R]标志,重定向是好的。但是,我想获得一个内部重定向又名URL重写... – Velcro 2011-03-16 17:45:01

相关问题