好吧,我正在寻找2个小时的解决方案,但无法解决。
这就是我所拥有的。我已经创建了通配符子域*,因此现在我可以从* .example.com
访问根目录在此根目录的htaccess中,我已将其放置:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteCond %{HTTP_HOST} ^(\w+)\.example\.com$
RewriteCond %{REQUEST_URI}:%1 !^/([^/]+)/([^:]*):\1
RewriteRule ^(.*)$ /%1/$1 [QSA]
ErrorDocument 404 http://example.com/404
当我需要它时,它几乎就可以工作。我在通配符的根文件夹上创建文件夹,并且可以使用子域访问这些文件夹。例如,我创建了两个名为“ folder1
”和“ folder2
”的文件夹,可以在http://folder1.example.com
或http://folder2.example.com
上访问它。
第一期:
它仍然让我读取另一个通配符的根文件夹,因此我可以从任何子域访问任何文件夹。例如:http://folder1.example.com/folder1
或http://folder1.example.com/folder2
将显示这些文件夹的内容,我希望只能从子域访问它们。因此,如果在该文件夹中没有这样的文件夹或文件,则应该为所有这些显示404(我的意思是,如果我在folder1内有folder1或folder1.php,它应该显示其内容。
在这里我们来看看第2期
假设我在folder3
内有一个名为“ folder1
”的文件夹,我想看看它。当我尝试访问http://folder1.example.com/folder3
时,它会将我重定向到http://folder1.example.com/folder1/folder3/
,除非我转到http://folder1.example.com/folder3/
(末尾有斜杠)。但是它应该像普通域一样将我重定向到http://folder1.example.com/folder3/
。
因此,我需要它作为一个简单的域工作,我唯一需要的是所有文件夹都只能使用相对子域进行访问。子域应只允许访问该文件夹中的内容。
摘要
我有*通配符子域,该子域具有根目录。
在此目录上,我创建了多个文件夹,这些文件夹将放置不同的网站。 (“ folder1
,“ folder2
”,“ YouNameIt
”)
当前没有任何htaccess,我可以通过http://ANYTHING-HERE.example.com/FOLDER-NAME-HERE
我只需要能够通过以下子域访问这些文件夹:http://FOLDER-NAME-HERE.example.com/
如果通配符根目录中的文件夹不存在(http://NOT-EXISTING-FOLDER.example.com
)-它应将我重定向到http://example.com/404
它不应该让我从任何子域访问另一个通配符根的文件夹。 (如果http://EXISTING-FOLDER.example.com/ANOTHER-EXISTING-FOLDER-ON-ROOT
中不存在{EXISTING-FOLDER
,则会重定向到http://EXISTING-FOLDER.example.com/404
)
当我尝试访问文件夹中的文件夹时,不应将URL从http://FOLDER-1.example.com/FOLDER-INSIDE-FOLDER
更改为http://FOLDER-1.example.com/FOLDER-1/FOLDER-INSIDE-FOLDER/
。
我认为这是最简单的子域解决方案,但是如果您可以提出另一个同样可行的解决方案,请让我和所有社区了解。