
我想要由 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
為整個子網域進行設定。