【发布时间】:2011-09-30 17:17:09
【问题描述】:
这是我的 .htaccess:
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ([^/]+/.*) index.php?dir=%{REQUEST_URI}
htaccess 位于 test.com/main/.htaccess
我可以很好地访问 test.com/main/ 和 test.com/index.php
test.com/main/directory 被重写为 test.com/main/index.php?dir=/main/directory/ 但 test.com/main/directory 保留在 url 栏中。这很好。
问题是当我尝试访问子目录时。当我访问 test.com/main/foler1/folder2 时,它会被重写为 index.php?dir=/main/folder1/folder2/。这也很好,但是 test.com/main/folder1/folder2/?dir=/main/folder1/folder2/ 显示在地址栏中,而不是在 URL 栏中保留 test.com/main/folder1/folder2。这就是问题。
我希望所有子目录,而不仅仅是 main 的直接子目录,在重写时将目录保留在 url 栏中。直接子代做得很好,但是该目录下的任何目录都会以我的 get 变量出现的方式进行重写。
这种重写的目的是让我不必将 index.php 文件复制到每个新创建的文件夹中,因此将 .htaccess 复制到每个文件夹中就达不到目的了。
【问题讨论】:
标签: apache .htaccess mod-rewrite