我想在我的經典ASP(JavaScript)頁面中回顯一個URL。我有一個小函數來追加一個查詢字符串到URL並回顯它。我的問題是我的字符串在輸出之前被修改;該協議更改爲匹配當前協議(http/https)並且子域也更改(www或無)。我不希望發生這種情況。經典ASP(JavaScript)更改正在響應的URL字符串
這裏是我的功能,我使用追加查詢字符串:
function writeUrl(langcode, url)
{
if(url.indexOf('?')==-1)
{
url = url + '?lang=' + langcode;
}
else
{
url = url + '&lang=' + langcode;
}
Response.Write(url);
}
很簡單,不是嗎?此功能包含在頁面頂部,如下所示:
<!-- #include virtual="/inc_url.asp" -->
最後,在頁面本身中,我調用該函數。 'lang'屬性是一個2個字母的字符串。
<% writeUrl(lang, 'http://www.example.com/somepage'); %>
在參觀http://example.com/somepage?lang=fr我本來期望上面的代碼來呼應這樣的:
http://www.example.com/somepage?lang=fr
但是,我得到任何以下四個值的,每一個匹配了,我訪問URL :
Http://example.com/somepage?lang=fr
https://example.com/somepage?lang=fr
http://www.example.com/somepage?lang=fr
https://www.example.com/somepage?lang=fr
任何人都可以指出我錯過了什麼?我想要輸出的URL沒有這種修改:我想使用它的rel = canonical。
不,重新寫入.net是不可能的。
新信息 - 甚至在評論中硬編碼到html中的URL也會更改。因此,如果我將<!-- http ://www.example.com/ -->
放入html中,那麼當我從https://example.com訪問它時,它已被重寫爲<!-- https ://example.com -->
。這似乎證實它是下游的東西。還有什麼想法? (上面添加了空格,所以我不超過超鏈接的最大數量)。
你有面向公衆的頁面,我們可以看到這個頁面嗎? – Martijn
不幸的是,我在這個網站的保密協議下。但是,正如我上面提到的那樣 - 如果我轉到https://example.com/somepage?lang=fr,那麼這是回顯的URL,而不是我在代碼中指定的那個。 – JasonC
雖然你確實給了我一個主意。如果URL與當前URL(如果它是針對另一個域)無關,那麼它的行爲如預期的那樣 - 無需修改協議或子域名即可。所以只有當URL可以訪問當前頁面時纔會發生。不幸的是,這對我沒有幫助... – JasonC