Chris

you can't call a procedure in a CGI program so any function/procedure has
to be
passed as a parameter in a GET or part of the data in a POST into the main
part
of the CGI program that then call's the requested procedure.

ScripAliasMatch is a rather simpley way to rewrite/redirect CGI calls but
it dosn't
allow any manipulation of the QUERY_STRING

On Thu, May 18, 2017 at 2:20 AM, Henrik Rützou <hr@xxxxxxxxxxxx> wrote:

Jon

why not do the obvious and change the url to

partner400.com/cgi/restsrv2.pgm?func=quantityquery&partnum=0000011&qu
<http://partner400.com/cgi/restsrv2/quantityquery?partnum=0000011&quantity=5&partnum=0000011&quantity=5>
.....

I have played around with this for 3 hours and ScriptAliasMatch can't do
the job
so it must be mod_rewrite and in Apache doc's they state:

"The Apache module mod_rewrite
<http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html> is a killer one,
i.e. it is a really sophisticated module which provides a powerful way to
do URL manipulations. With it you can do nearly all types of URL
manipulations you ever dreamed about. The price you have to pay is to
accept complexity, because mod_rewrite
<http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html>'s major drawback
is that it is not easy to understand and use for the beginner. And even
Apache experts sometimes discover new aspects where mod_rewrite
<http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html> can help.

In other words: With mod_rewrite
<http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html> you either shoot
yourself in the foot the first time and never use it again or love it for
the rest of your life because of its power. This paper tries to give you a
few initial success events to avoid the first case by presenting already
invented solutions to you."



On Wed, May 17, 2017 at 10:50 PM, Jon Paris <jon.paris@xxxxxxxxxxxxxx>
wrote:

I was as sure as I can be Chris. But I am beginning to doubt my sanity.

There are only two alias entries in that config file - one for regular
CGI and one for REST web services. I know I had both working. But ...

I am no longer chasing what obviously is not supposed to work and need
now to try and find a solution that will work.

I need to route to a program based on the first part of the URL and use
the main jury string for the parameters for the specific function so ...

partner400.com/cgi/restsrv2/quantityquery?partnum=0000011&qu
antity=5&partnum=0000011&quantity=5

Should route to a program identified by "restsrv2" to invoke the
"quantityquery" (as opposed to price query, quantity reserve, etc.
functions) using the provided parts and quantities.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

On May 17, 2017, at 3:04 PM, Hiebert, Chris <
chris.hiebert@xxxxxxxxxxxxxx> wrote:

The Apache server interprets that URL as /QSYS.LIB/PARTNER400.LIB/RESTS
RV1/PART1.PGM

Which is probably why you are having the issue.

Are you saying this actually worked on V7R1?

Chris Hiebert
Senior Programmer/Analyst
Disclaimer: Any views or opinions presented are solely those of the
author and do not necessarily represent those of the company.


-----Original Message-----
From: WEB400 [mailto:web400-bounces@xxxxxxxxxxxx] On Behalf Of Jon
Paris
Sent: Saturday, May 13, 2017 5:30 PM
To: Web400@Midrange. Com <web400@xxxxxxxxxxxx>
Subject: [WEB400] Changes/Bugs in Apache?

I have this directive in my Apache config (actually in the vhosts but
...)

ScriptAliasMatch ^/CGI/(.*) /QSYS.LIB/PARTNER400.LIB/$1.PGM

I have not changed it (honestly) and I am sure that it has been working
for years. This might be the first time I have used it since moving to V7R3.

When I try to use it with a REST web service (i.e. additional data in
the URL) I am getting very strange results.

This URL http://partner400.com/cgi/prodrpt2oa <
http://partner400.com/cgi/prodrpt2oa> works just fine and runs the
script correctly.

This one http://partner400.com/cgi/restsrv1/part1 <
http://partner400.com/cgi/restsrv1/part1> gives

Not Found
The script request is not valid. The script is not executable.

The log indicates that no PGM object was identified. So just for
chuckles I added .pgm to the base URL i.e: http://partner400.com/cgi/rest
srv1.pgm/part1 <http://partner400.com/cgi/restsrv1.pgm/part1>

That works - kind of ... the correct routing takes place and the script
is called BUT the ".pgm" text then gets _added_ to the end of the URL. i.e.
"part1" is actually passed to the script as "part1.pgm". If I add a /
following "part1" then ".pgm" is seen as the next element in the path.

I've searched for PTFs on the topic but am seeing nothing.

Anyone got any ideas? This is an Apache feature that we use a lot and
the .pgm workaround will not work for some scripts. For example this URL
http://partner400.com/cgi/restsrv2.pgm/quantityquery/?partnu
m=0000011&quantity=5 <http://partner400.com/cgi/res
tsrv2.pgm/quantityquery/?partnum=0000011&quantity=5> tags the ".pgm"
onto the end of quantityquery <http://partner400.com/cgi/res
tsrv2.pgm/quantityquery/?partnum=0000011&quantity=5> even when the
trailing / is present as shown.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400)
mailing list To post a message email: WEB400@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/web400.

--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400)
mailing list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.


--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.




--
Regards,
Henrik Rützou

http://powerEXT.com <http://powerext.com/>






As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.