cancel
Showing results for 
Search instead for 
Did you mean: 

web dispatcher url rewriting

Former Member
0 Kudos

Hi,

we implemented a solution to access our portal from outside using mobile devices.

Now the developers placed some icons/links on the start page and for some of them we receive errors when accessing from the internet.

This problem does not occur when we call the url from the intranet.

Is it possible that the web dispatcher rewrites the urls ?

this ist how it looks like at the moment:

request from intranet direct to portal:

http://<server.domain>:<port>/xxx/xxxxxx/xxxxx/xxxxxx

result 200 in response trace of portal

GET /xxx/xxxxxxx/xxx/xxxxxx/xxxxxxx/xxx!3axxxxx_xxxxxx!2fxx.xxxxx.xxxx.xxxxxx!2fxxxxxxxx!2fr!2fxx.xxxxx.xxxx.xxxxxxx_xx_xxxx!2fp.xx_xxxx_xxxx_xxxx!2fxx.xxxxx.xxxx.xx_xxxxxxx_xxxx_xxxx HTTP/1.1 200 1298 [26]

request from outside iPad -> apache reverse proxy -> SAP Web Dispatcher - portal:

https://<server.domain>:<port>/xxx/xxxxxx/xxxxx/xxxxxx

result 403 in response trace of portal

GET /xxx/xxxxxxx/xxx/xxxxxx/xxxxxxx/xxx%213axxxxx_xxxxxx%212fxx%2exxxx%2exxxx%2exxxxxx%212fxxxxxxxx%212fr%212fxx%2exxxx%2exxxx%2exxxxxx_xx_xxxx%212fp%2exx_xxxx_xxxx_xxxx%212fxx%2exxxx%2exxxx%2exx_xxxxxx_xxxx_xxxx HTTP/1.1 403 364 [13]

I do use rewrite rules in the modification handler, but don't use any options like 'replace' etc because i didn't understand the documentation at this point.

for example:

if %{PATH} RegIMatch "^/xxx/xxx/xxxxxxx/xxx/xxxxxx/*"

RegRewriteUrl ^/xxx/xxx/xxxxxxx/xxx/xxxxxx(.*) /xxx/xxxxxxx/xxx/xxxxxx$1

I have tried oprion 'noescape' but this didn't bring any improvement

Accepted Solutions (0)

Answers (2)

Answers (2)

0 Kudos

Hello Matthias,

What makes you think that the Web Dispatcher URL rewriting is screwing up the URL? There should not be any escaping happending there. You could enable trace level 2 or 3 for the Web Dispatcher. Then you will see the original and the rewritten request, so you will see what came in and what is forwarded to the back-end.

Regards,
Tobias

Former Member
0 Kudos

Hi Matthias,

A 403 HTTP response means that your request was forbidden: http://en.wikipedia.org/wiki/HTTP_403 It seems you are not allowed to view the content.

You see that the request is getting into the portal. Could it be that the url you are trying to open is blocked from within the portal?

kind regards,

Ted

Former Member
0 Kudos

Hi Ted,

no the url is neither blocked from the portal or from the web dispatcher permission table.

these are iviews integrated into the start page.

I can call the url from our intranet, but when I call it from outside I receive this 403 and in the response trace all the expressions are replaced, like "!" replaced with "%21" or "." replaced with "%2".

for example:

internal call (200)

.../pcd!3aportal_content!2fde.****.test.portal!2fmobility!2fr!2fde.****.test...

from outside (internet) (403)

.../pcd%213aportal_content%212fde%2e****%2etest%2eportal%212fmobility%212fr%212fde%2e****%2etest....

regards

Matthias

Former Member
0 Kudos

Switch on HTTP response tracing in AS JAVA and find out what GET causes the 403.

Former Member
0 Kudos

Hi Matthias,

If you calls from within your network work when going through the web dispatcher then it seems that the problem is in your apache server. You can check whether the correct URL's are called between Apache and Web Dispatcher by enabling the access log on your Web Dispatcher:

icm/HTTP/logging_0 = PREFIX=/, LOGFILE=/<path to>/access.log, SWITCHTF=month, FILEWRAP=on, LOGFORMAT=%h %l %u %t "%r" %s %b "%{referer}i" "%{user-agent}i"

Then you can check there which URL's are called from Apache (or directly from your browser).

Kind regards,

Ted

Former Member
0 Kudos

Hi Ted,

first of all thx for the hint to the icm/HTTP/logging_0. That brought a lot more informations and things to analyze.
Now I think I found an approach but don't know hoe to set this up in the web dispatcher.

Within the called web page there are som iviews I guess, which are called within the url with this "pcd" command. like for example:

...portal/prtroot/pcd!3aportal_content!2fde.****.test.portal!2fmobility... and so on
So my idea is that "!3a" replaces ":" adn !2f" replaces "/" and I don't know how to tell the eb dispatcher de decode this expressions.

Any idea on this ?

regards

Matthias

Former Member
0 Kudos

What exactly are you trying to achieve? You can rewrite URLs with regular expressions both on Apache and Web Dispatcher but why would you change the way portal generates URLs?

Former Member
0 Kudos

Hi Matthias,

I don't think you should do this in the Web Dispatcher. What you should investigate is why the URL's are incorrect. Samuli's question is a valid question: what are you trying to achieve?

kind regards,

Ted