Apache-2.2
Tomcat 的 apache 重定向的 302/301 和 404 重定向問題
我在 Apache Tomcat 前面使用 Apache HTTPD,並帶有以下虛擬主機:
$ cat /etc/apache2/sites-enabled/onlinetaskboarddotcom <VirtualHost *:80> ServerAdmin comented@out.com ServerName www.onlinetaskboard.com ServerAlias onlinetaskboard.com DocumentRoot /home/ubuntu/www/apache/onlinetaskboarddotcom ProxyPass / http://www.onlinetaskboard.com:8080/ ProxyPassReverse / http://www.onlinetaskboard.com:8080/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/ubuntu/www/apache/onlinetaskboarddotcom/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
www
沒有子域的 URL可以正常工作,但是一旦我包含子域 likeonlinetaskboard.com/login
,那麼我在 Chrome 等某些瀏覽器中會收到 404 錯誤。onlinetaskboard.com/someOtherValidPage``www``www.onlinetaskboard.com
這是我在 Chrome 中觀察到的請求/響應標頭。
帶有
www
子域:要求: 請求網址:http://www.onlinetaskboard.com/ 請求方法:GET 狀態碼:404 未找到 請求標頭: 接受:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 接受編碼:gzip、deflate、sdch 接受語言:en-US,en;q=0.8 連接:保持活動 Cookie:JSESSIONID=DE44F60835D23E6AB3CC2A2E8B9D6279 主辦方:www.onlinetaskboard.com 使用者代理:Mozilla / 5.0 (X11; Linux x86_64) AppleWebKit / 537.36 (KHTML, like Gecko) Ubuntu Chromium / 28.0.1500.71 Chrome / 28.0.1500.71 Safari / 537.36 響應標頭: 連接:保活 內容編碼:gzip 內容長度:377 內容類型:文本/html;字元集=ISO-8859-1 日期:格林威治標準時間 2013 年 11 月 14 日星期四 23:39:24 保活:超時=5,最大值=99 伺服器:Apache-Coyote/1.1 變化:接受編碼 X-Pad:避免瀏覽器錯誤
並且沒有
www
子域:要求: 請求網址:http://onlinetaskboard.com/ 請求方法:GET 狀態碼:302 找到 請求標頭: 接受:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 接受編碼:gzip、deflate、sdch 接受語言:en-US,en;q=0.8 記憶體控制:max-age=0 連接:保持活動 Cookie:JSESSIONID=36D1DED5A3F7B5E185FE5D5EDD4457FC 主持人:onlinetaskboard.com 使用者代理:Mozilla / 5.0 (X11; Linux x86_64) AppleWebKit / 537.36 (KHTML, like Gecko) Ubuntu Chromium / 28.0.1500.71 Chrome / 28.0.1500.71 Safari / 537.36 響應標頭: 連接:保活 內容長度:0 日期:格林威治標準時間 2013 年 11 月 15 日星期五 00:04:33 保活:超時=5,最大值=100 位置:http://onlinetaskboard.com/login 伺服器:Apache-Coyote/1.1
這是如何引起的,我該如何解決?
是否有東西在另一端驗證 URL?如果你只是去 ip.address:8080 會發生什麼,你會得到 404 嗎?我只是想知道這是否是tomcat可以做的事情。
此外,如果您添加
“ProxyPreserveHost 開啟”
這將保留請求標頭,以便您可以將其傳遞給 tomcat。
另外,你為什麼擁有這一切?cgi-bin 等:
選項 FollowSymLinks AllowOverride 無
<Directory /home/ubuntu/www/apache/onlinetaskboarddotcom/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined