HTACCESS:将域根目录更改为子目录

Bri*_*ham 8 php directory .htaccess root

我正在尝试使用子目录作为我的某个域的根文件夹.使用.htaccess,我使用mod_rewrite来完成工作.这是我已有的代码:

RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteCond %{REQUEST_URI} !^/domain/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /domain/$1

RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteRule ^(/)?$ /domain/index.php [L]
Run Code Online (Sandbox Code Playgroud)

这可以完成工作,但不完全.例如:

如果我转到http://domain.com/,它会index.phpdomain文件夹中显示.如果我转到http://domain.com/test/,它将显示该test文件夹的内容(或403).如果我转到http://domain.com/test(使用快捷方式,甚至显示文件夹),我会被重定向到http://domain.com/domain/test/.

这不应该发生.如果有的话,它要么从.htaccess做一个掩码(如果正在使用测试),要么只是转到http://domain.com/test/.我试图找到解决这个问题的方法,但事实并非如此.所以我正在寻求你的帮助!:)

非常感谢任何和所有的帮助.

Fem*_*emi 8

试试这个:它有点粗糙,但应该做你想要的.有一点混乱:我试图做的一些将取决于你的RewriteBase(你可能需要删除一个或多个/字符).

我基本上添加了一个初始块,专门查找/ domain /文件夹中的目录,这些目录不以尾部斜杠结尾并添加一个.让我知道它是否有效.

RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteCond %{REQUEST_URI} !^/domain/
RewriteCond /domain/%{REQUEST_URI} -d
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /domain/$1/

RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteCond %{REQUEST_URI} !^/domain/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /domain/$1

RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteRule ^(/)?$ /domain/index.php [L]
Run Code Online (Sandbox Code Playgroud)