【发布时间】:2014-07-28 19:33:38
【问题描述】:
我的项目结构如下:
site
|---admin
| |---index.php (echo 'admin. request uri: '.$_SERVER['REQUEST_URI'];)
| |---...
|
|---category
| |---index.php (echo 'category. request uri: '.$_SERVER['REQUEST_URI'];)
| |---...
|
|---...
|
|---index.php (echo 'main. request uri: '.$_SERVER['REQUEST_URI'];)
|---.htaccess
我想将所有请求重定向到文件夹中的 index.php 文件,该文件在 url 中指定(如果文件夹中的 index.php 存在),否则重定向到根 index.php 文件。例如:
如果 url 是 www.somedomain/admin/asdf,它应该被重定向到 admin/index.php 文件。
如果 url 是 www.somedomain/asdf,它应该被重定向到 main index.php.
为了将所有请求重定向到 index.php,我在 .htaccess 中添加了以下规则:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php [L]
现在如果我输入 www.somedomain/asdf 重定向成功,结果是:
主要。请求 uri:/asdf
但是如果我输入 www.somedomain/admin/asdf 重定向是错误的(到主 index.php,但应该是到 admin/index .php),结果是:
主要。请求 uri:/admn/asdf
请帮助我在 .htaccess 文件中为这种情况编写正确的规则。输出应该如下:
管理员。请求 uri:/admn/asdf
【问题讨论】:
标签: .htaccess mod-rewrite redirect