.htaccess路由到服务器上的子目录?性能/加载时间

时间:2012-08-20 17:39:57

标签: http .htaccess routing webserver

我想知道是否可以使用.htaccess文件将我的域直接路由到我服务器上的子目录?

我从常规的webhoster购买了一个虚拟主机软件包,我的domain.com连接到我服务器的根目录。我想知道是否有可能将.htaccess文件上传到我的服务器上的根目录,该目录会自动将domain.com(/index.php或/index.html)路由到domain.com/some-directory/ ...

当然,我不希望地址栏更新到domain.com/some-directory。我希望我的常规域只是从子目录而不是我的根目录中获取文件。

只是为了更好地了解我的服务器。

因此,再次调用mydomain.com时,它会从我服务器上的根目录中呈现index.html(或.php)。但是我希望mydomain.com呈现/subdirectory/index.html。

如果可以,我该怎么办?这在某种程度上是坏事吗?有没有我没想过的东西,例如是否有更长的加载时间或类似的方法?

提前谢谢你。 马特

更新:或者我的网络管理员面板上的DNS设置是否可行。我可以编辑所有DNS条目。

1 个答案:

答案 0 :(得分:2)

尝试将其放入文档根目录中的htaccess文件中:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/some-directory/
RewriteCond %{DOCUMENT_ROOT}/some-directory%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/some-directory%{REQUEST_URI} -d
RewriteRule ^(.*)$ /some-directory/$1 [L]

请记住,如果您尝试访问目录并且缺少尾部斜杠,mod_dir会将浏览器重定向到带有斜杠的URL,并将公开&#34; / some-directory /&#34;。< / p>


修改

此外,2 -f-d条件是确保请求实际上是针对存在的资源。这不是必需的,如果你有进一步的htaccess文件和重写规则,你可能不想要这些。他们确保如果有人请求某个虚假URL,则404消息将在/some-directory/目录的外部处理。否则404消息会说出以下内容:

  

在此服务器上找不到请求的URL / some-directory / blahblahblah。

公开所有内容都通过/some-directory/进行路由。