htaccess,主站点目录更改

时间:2010-07-04 12:43:36

标签: .htaccess mod-rewrite web directory

我使用lunarpages进行托管,并且可以添加多个网站。当我添加新网站时,它会在我当前网站所在的位置创建一个目录

即我的网站是jeffkilroy.com,如果我为hello.com创建域名,它现在也存在于jeffkilroy.com/hello

这很好,除了我想组织它好一点,以便网站目录不与我的jeffkilroy.com文件混合

如果我将所有jeffkilroy.com网站文件放在名为“main”的内容中,是否可以在htaccess中放置一些内容:

jeffkilroy.com/home真的去了jeffkilroy.com/main/home

但仍然可以从根(其他网站)轻松访问我的东西: jeffkilroy.com/hello

1 个答案:

答案 0 :(得分:1)

此解决方案完全取决于您的根目录(对于其他网站)没有与主站点中的文件夹名称相同的文件夹,但由于您仍希望能够访问其他站点的文件夹,根,没有太多办法。

无论如何,这似乎有效:

RewriteEngine On

# Let's prevent them from being able to go to our /main path manually
RewriteCond %{THE_REQUEST}       ^(POST|GET)\s/main
RewriteRule ^main/?(.*)$ http://jeffkilroy.com/$1 [R,L]

# Redirect stuff to /main/ if it isn't pointing to something else, or
# if it's just pointing to the primary root
RewriteCond %{REQUEST_URI}       ^/$
RewriteRule ^.*$ /main/$0

RewriteCond %{REQUEST_URI}      !-f
RewriteCond /main%{REQUEST_URI}  -f
RewriteRule ^.*$ /main/$0

RewriteCond %{REQUEST_URI}      !-d
RewriteCond /main%{REQUEST_URI}  -d
RewriteRule ^.*$ /main/$0 [L]

好奇的旁注:能够通过使用RewriteCond标志来压缩[OR]语句会很好,但是没有运算符优先级,所以它只是从顶部到顶部进行评估底部,这在这里不起作用。

相关问题