Linux
Apache重定向到其他頁面但不工作
我有一個
example.conf
包含以下行的虛擬主機名。<VirtualHost *:80> ServerName example.com ServerAdmin admin@myhost.com LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined CustomLog /var/log/httpd/app1_access.log combined ErrorLog /var/log/httpd/app1_error.log redirect / http://example.com/jenkins DirectoryIndex index.html index.php JkMount /jenkins/* failover JkMount /jenkins failover </VirtualHost>
我想要,如果有人點擊
http://example.com
它應該打開http://example.com/jenkins
我的 URL 正在重定向到
http://example.com/jenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkins
像這樣。
它是帶有 apache Web 伺服器的 Tomcat 上的 Jenkins。任何幫助將非常感激。
redirect / http://example.com/jenkins
如果重定向到同一主機,那麼這確實會導致重定向循環,因為該
Redirect
指令使用簡單的前綴匹配,並且匹配後的所有內容都被複製到目標 URL 的末尾。因此,您將獲得以下資訊:
/
(初始請求)/jenkins
(第一次重定向)/jenkinsjenkins
(第二次重定向)- 等等
您需要改用
RedirectMatch
指令,以便僅匹配文件根目錄。RedirectMatch
(也是 mod_alias 的一部分)使用正則表達式進行匹配,而不是前綴匹配。例如:RedirectMatch 302 ^/$ http://example.com/jenkins
我已經包含了可選的狀態程式碼參數,以明確這是一個 302(臨時)重定向(預設)。
對伺服器配置進行任何更改後,您需要重新啟動 Apache。而且,與往常一樣,請確保您在測試之前已清除瀏覽器記憶體。