Das Feature war lange überfällig und wurde nun ab APEX 20.1 endlich implementiert: Friendly URL.
Ich vermute ja, dass die URL hauptsächlich freundlicher gestaltet wurde um die "bösen" SEO Geister der Google Suchmaschine zu besänftigen...
Mit der alten Session Notation konnte Google nämlich nichts anfangen und hat bei jedem "spidern" eine neue Session ID bekommen, die Seite dann intern gespeichert
und mit den bereits beim letzten Mal gespiderten Seiten verglichen um dann festzustellen, dass die Seite "in einer anderen Version" schon gibt.
Das führt dann gnadenlos zum Downgrade (bei uns 20 Plätze) mit der Begründung: Kanonische Seiten !
Zurück zur URL:
Altes APEX URL Format (bis 19.2):
https://server: | 8080 | /ords | /f?p= | 101: | 1: | 123456789: | myRequest: | YES | 1,2 | P1_A,P1_B | A,1 | YES | |
| https://server: | Name des Servers oder IP Adresse |
| 8080 | Port des Webservers (TomCat / Apache / Nginx / Bea WebLogic) |
| /ords | Name des Ords War files |
| /f?p= | Aufruf der Procedure f mit Parameter p |
1 | 101: | Appliaktions-Alias oder Applikations ID |
2 | 1: | Seiten-Alias oder Seitennummer |
3 | 123456789: | Session ID oder 0 für Public Pages |
4 | myRequest | Name des Request für die Ziel-Seite (beliebiger Text, der mit :REQUEST oder &REQUEST. weiterverarbeitet werden kann |
5 | YES | Debug der Seiten (YES/NO) |
6 | 1,2 | Clear Cache für die Seiten 1 und 2 (Reset der Items der Seiten) |
7 | P1_A,P1_B | Setzt die Items P1_A und P1_B auf ... |
8 | A,1 | die Werte A und 1 |
9 | YES | Seiten in druckfreundlichen Format ausgeben (YES/NO) |
Neue Oracle APEX URL Format (ab 20.1):
https://server: | 8080 | /ords | /muso_training | /r | /myapp | /mypage | ?session=123456 | &p1_a=A&p1_b=1 | &request=myTest |
Erklärung der URL Parameter:
| https://server: | Servername oder IP |
| 8080 | Port des Webservers (TomCat / Apache / Nginx / Bea WebLogic) |
| /ords | Name des Rest Service (Default ords) |
1 | /muso_training | Änderbar durch "Internal Workspace": Manage Workspaces / Existing Workspace / Edit Workspace Information / => Component Availability / RESTful Path Prefix oder begin apex_instance_admin.get_parameter( 'PATH_PREFIX','xyz'); end; |
2 | /r | Immer fest auf "r" gesetzt. Kann aber geändert werden durch: BEGIN apex_instance_admin.get_parameter('APEX_REST_PATH_PREFIX','r'); END; |
3 | /myapp | Applikationname (myapp) oder App Nummer (z.B. 100) |
4 | /mypage? | Seitenalias (mypage) oder Seitennummer (z.B. 1) |
5 | session=123456 | Session ID oder 0 für Public Pages |
6 | &p1_a=A &p1_b=1 | Name der zu setzenden Items oder deren Wert: :P1_A:='A' und :P1_B:=1; |
7 | &request=myTest | Name des Requests (hier myTest) |
8 | &clear=1,2 | zu resetende Seiten-Items (hier alle Items auf Seiten 1 und 2) CR = Clear Region, RR = Reset Region, RP = Reset Pagination |
9 | #myANKER | Seitenanker anspringen |
Hinweis: Die Rehenfolge der Parameter von Position 5 bis 8 ist austauschbar, nur beginnt der erste Parameter mit ?xxx
und die folgenden werden mittels &yyy drangehängt. Achten Sie bitte darauf, dass bei der Itemersetzung im HTML Kontex
weiterhin die Syntax &ITEM. (Betonung auf dem Punkt!) lautet.
Sie sollten die Seiten URL weiterhin erzeugen durch das Package: APEX_PAGE.GET_URL!
Die Syntax lautet:
FUNCTION GET_URL (
p_application IN VARCHAR2 DEFAULT NULL,
p_page IN VARCHAR2 DEFAULT NULL,
p_session IN NUMBER DEFAULT APEX.G_INSTANCE,
p_request IN VARCHAR2 DEFAULT NULL,
p_debug IN VARCHAR2 DEFAULT NULL,
p_clear_cache IN VARCHAR2 DEFAULT NULL,
p_items IN VARCHAR2 DEFAULT NULL,
p_values IN VARCHAR2 DEFAULT NULL,
p_printer_friendly IN VARCHAR2 DEFAULT NULL,
p_trace IN VARCHAR2 DEFAULT NULL )
RETURN VARCHAR2;
Beispiel:
SELECT apex_page.get_url(
p_application=>100,p_page=>1, p_session=>:APP_SESSION,p_items=>'P1_A,P1_B',p_values=>'A,B')
FROM dual;
Weitere spannende Themen erwarten Sie in einem unserer APEX Kurse.
Fun Fakt: Wir haben vermutlich weltweit die meisten verschiedenen APEX Kurse im Program (APEX Kompakt, APEX I, APEX II, APEX New Features, APEX Security, APEX im Internet)
macht 6 Stück, wer bietet mehr ? Unser Dozent arbeitet schon seit 1997 mit APEX Techniken (ja da gab es APEX noch gar nicht ...)