2015-09-05 126 views
0

我正在研究一個Apache模塊,它可以幫助我消除重複的內容,但是我有一個檢索真正值的問題。模塊接收/空(無路徑)請求

這是我可以提供的基本最重要的功能,使模塊打印一個值並終止,而不管我訪問的URL如何。

static int handler(request_rec *r){ 
    ap_rprintf(r,"%s\n",r->the_request); 
    return DONE; 
} 

http://docstore.mik.ua/orelly/apache_mod/128.htm,它指出

的char * THE_REQUEST 這包含請求的第一線,進行日誌記錄。

我然後在http://127.0.0.1:81

當我執行命令行上運行的本地服務器上的一些測試:

curl http://127.0.0.1:81/ 

我收到以下:

GET/HTTP/1.1 

當我在命令行上執行:

curl http://127.0.0.1:81 

我收到以下:

GET/HTTP/1.1 

爲什麼THE_REQUEST總是返回GET/HTTP/1.1而不是GET/HTTP/1.1GET HTTP/1.1

我想創建一個從http://127.0.0.1:81http://127.0.0.1:81/的重定向,所以谷歌或其他搜索引擎不認爲我有重複的內容。

當我改變了我的代碼:

static int handler(request_rec *r){ 
ap_rprintf(r,"%s\n",r->unparsed_uri); 
return DONE; 
} 

我仍然有問題,因爲我是從分別嘗試http://127.0.0.1:81/http://127.0.0.1:81期待/和一個空。

我懷疑這是HTTP或apache中的一個錯誤,但我想知道是否可以解決這個問題。

我想訪問http://127.0.0.1:81與位置指示返回301重定向狀態http://127.0.0.1:81/

有什麼建議?

回答

1

爲什麼the_request總是返回GET/HTTP/1.1而不是GET/ HTTP/1.1和GET HTTP/1.1?

HTTP在請求URL中需要一個路徑。客戶經常會讓你忽略它(與計劃一起),但在線上他們總是爲你添加它。這只是一種方便,您可以在瀏覽器中鍵入「example.com」,並不意味着它沒有任何路徑或方案。