您可自下列路徑存取此範例:
portal-server-URL /rewriter/HTML/attrib/attribute.html
請確定您已於閘道服務的 [網域與子網域的代理伺服器] 清單中定義 abc.sesta.com 與 host1.siroe.com 。
若未定義,則會採用直接連接,且不前置閘道 URL。
您不需將此範例中指定的規則新增至 default_gateway_ruleset 中,因為規則已完成定義。
<html> Rewriting starts <head> <title>TEST PAGE () </title> </head> ID-htmlattr.1 <br><br> 1.a href <a href="http://abc.sesta.com/images/logo.gif">http://..</a> <br><br> 2. href <a href="https://host1.siroe.com">https://..</a> <br><br> 3. href <a href="../images/logo.gif">../images/</a> <br><br> 4. href <a href="images/logo.gif">images/..</a> <br><br> 5. href <a href="../../images/logo.gif">../../images/</a> <br><br> Rewriting ends </html>
<Attribute name="href"/>
<html> Rewriting starts <head> <title>TEST PAGE () </title> </head> ID-htmlattr.1 <br><br> 1. a href <a href="gateway-URL/http://abc.sesta.com/images/logo.gif">http://..</a> <br>
// 重新寫入此 URL 是因為 <Attrib name="href"/> 規則已於 default_gateway_ruleset 中加以定義。由於此 URL 是絕對 URL,因此僅會前置閘道 URL。請確定您已於閘道服務的 [網域與子網域的代理伺服器] 清單中定義 abc.sesta.com。否則,會認為是直接連接,而不會前置閘道 URL。
2. href <a href="gateway-URL/https://host1.siroe.com">https://..</a>
// 同樣,host1.siroe.com 需於閘道服務的 [網域與子網域的代理伺服器] 清單中定義。否則,會認為是直接連接,而不會前置閘道 URL。
<br><br> 3. href <a href="gateway-URL/portal-server-URL/rewriter/HTML/images/logo.gif">../images/</a>
// 由於指定的是相對路徑,因此會前置閘道 URL 與 portal-server-URL (附有所需子目錄)。此連結將無法作用,因為在所提供之範例結構的 HTML 目錄下沒有名為 images 的目錄。
<br><br>
4 href <a href="gateway-URL/portal-server-URL/rewriter/HTML/attrib/images/ logo.gif">images/..</a> <br><br>
// 由於指定的是相對路徑,因此會前置閘道 URL 與 Portal Server URL (附有所需子目錄)。
5. href <a href="gateway-URL/portal-server-URL/rewriter/images/logo.gif"> ../../images/</a> <br><br>
// 由於指定的是相對路徑,因此會前置閘道 URL 與 Portal Server URL (附有所需子目錄)。此連結將無法作用,因為在所提供之範例結構的 Rewriter 目錄下沒有名為 images 的目錄。
Rewriting ends</html>
此部分討論使用 HTML JavaScript 記號範例
您可自下列路徑存取此範例:
portal-server-URL /rewriter/HTML/jstokens/JStokens.html
將此範例中指定的規則新增至 [重新寫入 JavaScript 來源的規則] 部分的 default_gateway_ruleset 中。
在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset。
從終端機視窗重新啟動閘道:
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html>
<head>
Rewriting starts
<script language="javascript">
function Check(test,ind){
if (ind == \qblur\q)
{alert("testing onBlur")}
if (ind == \qfocus\q)
{alert("testing onFocus")}
}
</SCRIPT>
</head>
<body>
<form>
<input TYPE=TEXT SIZE=20 value=blur onAbort="Check
(\q/indexblur.html\q,\qblur\q);return;">
<input TYPE=TEXT SIZE=20 value=blur onBlur="Check
(\q/indexblur.html\q,\qblur\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onFocus="Check
(\q/focus.html\q,\qfocus\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onChange="Check
(\q/focus.html\q,\qfocus\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onClick="Check
(\q/focus.html\q,\qblur\q);return;">
<br><br>
</form>
</body>
Rewriting ends
</html>
<Attribute name="onClick" type="DJS"/> <Function type="URL" name="Check" paramPatterns="y"/>
<Function name="URL" name="Check" paramPatterns="y"/> 為 JavaScript 函數規則,並於 JavaScript 函數範例中詳細說明。
<html>
<head>
Rewriting starts
<script language="javascript">
function Check(test,ind){
if (ind == \qblur\q)
{alert("testing onBlur")}
if (ind == \qfocus\q)
{alert("testing onFocus")}
}
</SCRIPT>
</head>
<body>
<form>
<input TYPE=TEXT SIZE=20 value=blur onAbort="Check
(\qgateway URL/portal-server-URL/indexblur.html\q,\qblur\q);return;">
<input TYPE=TEXT SIZE=20 value=blur onBlur="Check
(\qgateway URL/portal-server-URL/indexblur.html\q,\qblur\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onFocus="Check
(\qgateway URL/portal-server-URL/focus.html\q,\qfocus\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onChange="Check
(\qgateway URL/portal-server-URL/focus.html\q,\qfocus\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onClick="Check
(\qgateway URL/portal-server-URL/focus.html\q,\qblur\q);return;">
// 所有敘述是依照此範例重寫。已在每種情況中前置閘道 URL 與 Portal Server URL。這是因為 onAbort、onBlur、onFocus、onChange 與 onClick 的規則都已在 default_gateway_ruleset 檔案中定義。Rewriter 會偵測 JavaScript 記號,並將之傳送至 JavaScript 函數規則中以便進行進一步的處理。此範例中的第二個規則會告知 Rewriter 該重新寫入哪一個參數。
</body> <br>
Rewriting ends
</html>