任何人都可以请我提供htaccess配置,以便我可以将我的文件夹视为子域名。
假设用户将尝试浏览http://folder.mydomain.com
,用户实际上会看到http://mydomain.com/folder
的内容。
此外,我希望浏览器中的网址显示http://folder.mydomain.com
而非http://mydomain.com/folder
。
虽然我在互联网上找到了解决方案但无法使其正常工作。
提前致谢。
答案 0 :(得分:1)
尝试:
RewriteEngine On
# to handle directory slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)
RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -d
RewriteRule ^(.+[^/])$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)
RewriteCond %{DOCUMENT_ROOT}/%1 -d
RewriteRule ^(.*)$ /%1/$1 [L]
条件首先检查请求是否已经存在于现有文件或目录中,然后主机名不以“www”开头,然后它为子域创建分组(例如folder
),然后在第一个规则中,它检查“文件夹”中的请求是否是目录,并且请求不以尾部斜杠结束。这将重定向请求以包括尾部斜杠。这是因为mod_dir和DirectorySlash选项将重定向没有尾部斜杠的目录请求,这将暴露您的“文件夹”。
第二条规则具有相同的条件,只是它仅检查子域是否是存在的文件夹。然后它在内部将请求重写到该文件夹。