由 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
或other.mydomain.com
?
答案1
听起来,您的sub
子域名映射到与主域名和所有其他子域名(www
和other
等)相同的目录。
但是,如果对子域的所有请求sub
都在内部重写为/sub
子目錄那么您可能只需创建另一个.htaccess
设置/sub/.htaccess
即可DirectorySlash Off
- 这将应用于sub
对子域的所有请求。(假设您不通过不同的主机名访问同一个子目录。如果愿意,您可以阻止这种情况。)
该/sub/.htaccess
文件也是您根据要求实现 #3 的地方。
根.htaccess
文件只是将对sub
子域的所有请求重写到/sub
子目录中。
在旁边:由于您在 ServerFault 上询问了这个问题,因此通常假设您完全控制了服务器。在这种情况下,最好sub
在自己的 vHost 容器中配置此子域,该容器直接指向/sub
子目录(或理想情况下在主域目录树之外的某个位置)。在这种情况下,您不需要实现要求中的 #2,只需DirectorySlash Off
为整个子域进行设置即可。