2009-12-18 29 views
0

我在想如何制作一个.htaccess RewriteRule以便访问者浏览: site.com/folder.htaccess RewriteRule使用户浏览site.com/folder,但提供服务site.com/f1/f2/f3/folder/index.php

但供应

site.com/f1/f2/f3/folder/index.php

其中f1/...是文件夹只是一个任意线。

已经踢了mod_rewrite一点,并得到了一些非常奇怪的结果,但我没有去。任何帮助包裹我的头围是非常感谢。

+0

更具体地说,我有一个网站框架,深埋几个文件夹,所以网站的根开始说site.com/folder1/folder2/index.php ...我希望这是相当于site.com。此外,我需要它,以便site.com/folder1/folder2/folder3/index.php将被视为site.com/folder3 我希望更清楚。 – tr0y 2009-12-18 08:06:56

+0

因此,这将重定向根,但不是其他任何东西:重写^ $ nest/site/$ 1 [L]。 – tr0y 2009-12-21 01:13:13

回答

1

我不太确定你想达到的目标。但是,这可能会解决您的问题。基本上它转化为/folder/folder//folder/.../f1/f2/f3/folder/...任何查询:如果你不site.com/folder后计较什么

RewriteRule ^folder(/.*)?$ f1/f2/f3/folder$1 

编辑
,这应该足够了:

RewriteRule ^folder$ f1/f2/f3/folder/index.php 

编辑#2
重写根(根据由OP评论):

RewriteRule ^(.*)$ folder1/folder2/$1 [QSA] 

可能还有其他(更好?)的方式来翻译的根,虽然。

Docs are availableQSA指令。

+0

你的第一个模式也将允许'folderfoobar'。 – Gumbo 2009-12-18 07:46:11

+0

@Gumbo哎呀!编辑。 – jensgram 2009-12-18 08:25:01

+0

我能够获得第一种工作方式,但它仍然需要深度根1文件夹,因此根索引结束于site.com/folder/index.php ...尝试了编辑2,但投掷了500内部服务器错误。我所在的子域的根目录中有.htaccess文件,下面没有任何.htacess文件。 – tr0y 2009-12-18 23:01:58