当给定uri只是主机名时,htaccess不会重定向到子文件夹

时间:2014-07-09 15:11:02

标签: php .htaccess redirect

我使用.htaccess文件将所有请求重定向到位于子文件夹中的index.php文件。
文件夹和文件结构:

/var/www/html/.htaccess
/var/www/html/my-folder/index.php

主html文件夹中没有任何内容,但.htaccess文件和my-folder目录。

我的.htaccess文件内容是:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /my-folder/index.php [L]

所有请求实际上都被重定向到my-folder中index.php文件的正确位置。所有请求但请求url只是主机名。例如:

www.my-host.com/path -> Redirects correctly
www.my-host.com/path/ -> Redirects correctly
www.my-host.com/path/another-path -> Redirects correctly
www.my-host.com/file.php -> Redirects correctly
www.my-host.com -> Won't redirect
www.my-host.com/ -> Won't redirect

我做错了什么?

1 个答案:

答案 0 :(得分:0)

模式中的.表示URI中必须包含某些内容,请尝试将其设为可选内容或使用^代替:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /my-folder/index.php [L]