由 Apache 提供服务我希望在我的一个子域站点(例如sub.mydomain.com
)上,没有尾部斜杠的 URL 直接(没有外部重定向)指向底层文件夹中的索引文件。子域请求在内部重定向到子文件夹。所有其他 URL 应该以正常的 Apache 方式工作,外部重定向到斜线版本。
所有指令都必须放在我的 .htaccess 文件中。为此,我计划执行以下操作:
- 关闭
DirectorySlash
请求sub.mydomain.com/...
sub.mydomain.com/…
将请求重写为/sub/...
- 重写无斜杠目录 URL
/sub/...
以获取index.html
底层目录内部
我对如何执行 2. 和 3. 有一个好主意,但是我如何才能DirectorySlash off
仅针对请求sub.mydomain.com
而不是www.mydomain.com
or发出请求other.mydomain.com
?
通过它的声音,您的子域映射到与主域和所有其他子域(和等)
sub
相同的目录www
other
但是,如果对子域的所有请求
sub
都在内部重写到/sub
子目录,那么您大概可以创建另一个您设置的位置 - 然后这适用.htaccess
于对子域的所有请求。(假设您也没有通过不同的主机名访问相同的子目录。如果您愿意,可以阻止这种情况。)/sub/.htaccess
DirectorySlash Off
sub
该
/sub/.htaccess
文件也是您在需求中实施#3 的地方。根文件只是将所有对子域的
.htaccess
请求重写到子目录。sub
/sub
旁白:由于您在 ServerFault 上提出此问题,因此通常假定您对服务器具有完全控制权。在这种情况下,最好
sub
在其自己的 vHost 容器中配置此子域,该容器直接指向/sub
子目录(或理想情况下位于主域目录树之外的某个位置)。在这种情况下,您不需要实现 #2 的要求,您只需DirectorySlash Off
为整个子域设置。