htaccess重写到站点的不同文件夹中的同名文件

时间:2012-09-30 11:10:21

标签: apache .htaccess mod-rewrite rewrite

我试图搜索很多但没有成功。我希望有人能真正帮助我解决这个问题。

好的,所以我的网站就像:

/rewrite.php
/folder1/rewrite.php
/folder2/rewrite.php
/folder1/subfolder1/rewrite.php
/folder1/subfolder2/rewrite.php

依旧......

简而言之,每个文件夹(管理员访问文件夹除外)都有 rewrite.php

所以基本上,我想重写到相应目录中的rewrite.php文件,但我无法做到。

那是

如果我要求

/News

然后它应该重写为:

/rewrite.php

如果我要求:

/folder1/News

然后它应该重写为:

/folder1/rewrite.php

等其他文件夹。

目前,这就是我在htaccess中所拥有的:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . rewrite.php [L,NC]

某处,我读到如果我删除RewriteBase,那么它使用当前目录作为RewriteBase。但它失败了,并没有奏效。

另外,我想在异常中保留一些文件夹(其中应禁用重写),如:

/administration
/config

我希望有一个可行的解决方案,如果有人可以帮助我......:)

最诚挚的问候,

Ankur Thakur

1 个答案:

答案 0 :(得分:0)

尝试:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/(administration|config|rewrite.php)
RewriteRule ^(.*?)(/?[^/]+)$ $1/rewrite.php [L]