-1

有没有办法我可以使用 htaccess 的 url 重写功能看起来像有一个文件让我们说它/public/some/folder实际上是什么时候在/public.

例如,我在根文件夹中有 index.php,我希望它在我访问 index.php 时也能像它在所有文件夹和子文件夹中的行为一样

当我执行 index.php 时,它也会在所有文件夹和子文件夹中执行

更新

请通过以下示例了解我的问题

index.php 在根目录中,我在根目录中也有不同的文件夹,所以当我通过浏览器访问 index.php 时,它也会在其他文件夹中执行

http://example.com/index.php也会表现得好像它也在子文件夹中

http://example.com/folder1/index.php

http://example.com/folder2/index.php

http://example.com/folder3/index.php

index.php不在这些文件夹中,但它也必须同时在这些文件夹中执行

我认为通过这个例子不难理解。请相应地回答

4

1 回答 1

0

我不确定我是否理解正确。但是任何方式你都可以在你的 .htaccess 中尝试类似的东西

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]

所以在它之后,一切都将使用 $_GET[page] 参数进入 index.php。因此,例如 www.mydomen.com/try/to/get/this 将转到我们的 index.php,我们将在其中拥有我们的 $_GET[page]="try/to/get/this"。如果您将为此字符串使用explode,您可以为您的网址编写任何您想要的规则。类似于您自己的 URL 管理器 :)

例子:

将您的 index.php 放在根文件夹中,并将 .htaccess 放在您的 index.php 中:

$urlArray = explode("/",$_GET['page']);
switch($urlArray[0]){
  case "try":
     include($_SERVER[DOCUMENT_ROOT]."/path/to/folder/what/you/need/my.php");
     break;
  case "another_url":
     include($_SERVER[DOCUMENT_ROOT]."/another/path/to/folder/what/you/need/my_another.php");
     break;
}

希望这是你需要的。

于 2012-08-21T08:41:59.800 回答