可从以下位置访问本示例:
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>
// 由于已在 default_gateway_ruleset 中定义了 <Attrib name="href"/> 规则,所以会重写这个 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 配置下的重写器服务中的 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。这是因为在 default_gateway_ruleset 文件中定义了 onAbort、onBlur、onFocus、onChange 和 onClick 的相应规则。重写器会检测 JavaScript 标志,并将其传递给 JavaScript 函数规则以便做进一步处理。示例中所列的第二项规则会通知重写器要重写哪个参数。
</body> <br>
Rewriting ends
</html>