検索エンジンに表示される設計を使用した Oracle Apex アプリケーションの開発
これは、APEX アプリケーションの URL 構文のさまざまなスタイルに関する問題についてのディスカッションです。また、単一のデータベース インスタンスを使用してアプリケーションの URL をカスタマイズする方法を示すために、APEX ワークスペースの名前空間がどのように構成されているかについての説明もあります。
コメント: 一部のインターネット検索では、探している答えが得られる場合があります。人気のある正規の URL パスと Oracle APEX で使用される表記法との間の変換の問題に取り組んでいる多くの開発者やコンサルティング ギグが存在します。
有用であることが証明された検索用語にはoracle apex pretty url
、 、url mapping
、および などがありhttp url mapping plsql
ます。最も有用なガイドは Oracle PL/SQL の例でしたが、さらに深く掘り下げて、URL リクエストを再解釈する Web サーバー エンジン (つまり、Apache HTTP サーバー) でルールを設定して、APEX スタイルのアドレスがマスクされるようにすることもできます。これは必須ではありませんが、「URL リマッピング」などのいくつかの手法が可能な解決策の 1 つです。
この投稿は、検索エンジン最適化 (SEO) の詳細に関するガイドではありません。これは、「Google フレンドリー」に関する OP の質問とは遠い関係にある可能性がありますが、このソリューション ガイドの範囲を超えています。
Oracle APEX Web サイトは検索エンジンに適していますか?
元の投稿から直接引用されたコメントは、調査して対処する価値がありました。これはほとんど間違った結論です。
リダイレクトは Google フレンドリーではありません。
これは実際には、APEX Web サイトでの設定方法によって異なります。リダイレクトは、代替 URL 命名スキームを使用する着信トラフィックを管理する 1 つの方法ですが、これが唯一の方法ではありません。
Apex で成功したブログと Web サイト:
APEX Ninjasを擁する APEX 開発者チームなどの一部のオンライン グループは、Oracle APEX によるサイトやブログの使用方法に多くの変更を加えることなく 、 Googleなどの検索エンジンからの参照が増加していると報告し続けています。
もう 1 つの良い例は、 Oracle の Tom Kyte によって作成されたアクティブな APEX Web サイト"ASK Tom"です。このサイトは何年もの間 APEX で運営されており、この Web サイトのページへの参照は、「ASK Tom」Web サイトの使い慣れた APEX スタイルの URL 形式で検索エンジンの結果ページに引き続き表示されます。
明確にするためのより良いナビゲーション URL の使用
Web サーバーREDIRECTS
は、Oracle Apex リスナーの上にクリーンな URL アドレス構文をマッピングするための 1 つのアプローチです。Abyss Web Server Engineを使用します。これは、当社の APEX アプリケーション サーバーの前面にある軽量の http サーバーです。絶対に必要というわけではありませんが、単一の Web サーバー タスクの管理を簡素化するために選択しました。リダイレクトも問題なく機能します。これ以上は調べていませんが、virtual hosting
やなどの高度な機能を使用url rewriting rules
すると、同じ Apex リスナー インスタンスで複数の TLD (プライマリ ドメイン) または C-NAME (サブドメイン) を分離するという要件に関して、さらに詳しく知ることができます。
APEX アプリケーションの最も醜い URL フォームがデフォルトです。解読可能ですが、人間の目に優しくなく、覚えるのに十分単純ではありません。HOME
これは、次の名前のアプリケーションのページに割り当てられた URL のサンプル ショットです。APEX-LAB-PUB

これは、Oracle APEX Web サーバーが解釈する URL の一般的な形式です。したがって、観察する一般的な形式は、句の後のすべてです: f?p=...
http://somedomain.com/pls/apex/f?p=1312786:5:987529480
名前を設定する代替オプションを使用するALIAS
と、同じレイアウトでショートカット URL フォームを作成できますが、人間が判読できるエイリアス割り当てを使用できます。

これは良いことですが、Oracle Apex のネイティブ REST Web サービス リスナーを使用して、内部リンクと外部リンクをよりシンプルに見せる一般的な方法もあります。簡素化された URL 構文により、リダイレクト フックの設定がより明確で整理されたものになります。
REST Web サービスを使用した APEX アプリケーション Web サイトの編成
この例を開発するために、Oracle の無料の Apex ホスティング層を使用しました。使用できる機能にはいくつかの制限がありますが、RESTful Web サービスは、このプラットフォームの Apex リスナーで有効になっています。これが必要です。
Web サービス URI を Apex URL 要求にマッピングする
これは、使用する URL 構文で、次のようになります。
https://apex.oracle.com/pls/apex/...(workspace)/...(uri request)
URI (Uniform Resource Identifier)
これは、Oracle Apex ホスティング リスナーのベース URL の末尾に追加される部分です。以下の例は、一般的なテンプレートです。
Generic URI Syntax This Solution URI
hr/employees/{ID} display/{app}/{page}
|_|_________|____| |______|____________|
| | | | |
| | -Handler Bind Variable | -Handler Bind Variable(s)
| | |
| - URI Template - URI Template
|
- Module URI Prefix
-- RESTful Service Design Summary
Module Name: superEasyURL
URI Prefix (optional): (none)
URI Template: display/{app}/{page}
Handler Method: GET
Handler Source Type: PL/SQL
Handler Source:
declare
url varchar2(500);
baseurl constant varchar2(2000):=
'https://apex.oracle.com/pls/apex/f?p=';
begin
url:= baseurl || :app || ':' || :page;
:URL := url;
:STATUS := 303;
end;
注意:また、このRESTサービスに2つのパラメータを設定して、上記のPL/SQL文のおよびOUT
の値に対する2つのバインド変数を表す必要があります:URL
STATUS

HTTP 303 ステータス ヘッダー コードについて
HTTP 303と呼ばれる別の種類の HTTP ステータス コードがあります。APEX を使用して、リダイレクトではないページとコンテンツを配信できます。Oracle Application Express とその RESTful Web サービスは、バックエンドで APEX 形式に変換される従来の URL リクエストを受信できます。
303 See Otherは、セマンティック Web 理論に従って実世界のオブジェクトを識別する URI の要求に応答する 1 つの方法として提案されています (もう 1 つはハッシュ URI の使用です)。
たとえば、http://www.example.com/id/alice200 OK
が Alice という人物を識別している場合、サーバーが Alice 自身を配信できないため、サーバーがGET リクエストに で応答することは不適切です。代わりに、サーバーは 303 See Other 応答を発行し、Alice という人物の説明を提供する別の URI にリダイレクトします。
参考抜粋:Wikipedia.com
実際の例のデモンストレーション
これは、私の個人的な、Oracle がホストするワークスペースで作成された例です。これは、以前に構築された REST サービスによって解釈される URL です。
https://apex.oracle.com/pls/apex/rgpascual/display/{app}/{page}
|_________|
|
|
- Workspace ID String (required by the listener) -
共有インスタンスでは、この変換を行うために、ユーザーのワークスペース名への追加の参照が必要であることに注意してください。必要かどうかは 100% わかりませんが、最終パス参照で使用することでこのデモを完成させることができました。

表示: HOME
APEX-LAB-PUB アプリケーション (別名: ) からのページ (別名APEXLABPUB01
)。

結論、質問、および一般的なアドバイス
この投稿の取り組みにより、プリティ URL 構文を使用して、Apex アプリケーション Web サイト内のナビゲーション リンクを表す可能性が提供されます。Oracle によって定義されたデフォルトの表記法ではなく、ナビゲーション リンク リストは次のようになります。
注: これらのリンクは機能しません。これらは、この提示されたソリューションの利点を説明するためのものです。
家
実際に要求された URL:
someapexserver.../pls/apex/mywork/display/new-app/home
私たちに関しては
実際に要求された URL:
someapexserver.../pls/apex/mywork/display/new-app/about
コンタクト
実際に要求された URL:
someapexserver.../pls/apex/mywork/display/new-app/contactus
アソシエイト
実際に要求された URL:
someapexserver.../pls/apex/mywork/display/new-app/associates
ビジネスオペレーション
実際に要求された URL:
someapexserver.../pls/apex/mywork/display/new-app/businessops
これで、このソリューションの初期設計で選択した URI テンプレートを使用して、参照リンクとナビゲーションが統一され、一貫性が保たれます。
追加の質問: 単一の Apex インスタンスのアプリケーション容量
Oracle Apex が単一インスタンスで作成されたアプリケーションを管理する方法について、追加の質問がありました。
... つまり、共有ホスティング サーバーを購入すると、必要な数の PHP アプリケーションを作成できます。しかし、これがオラクルの頂点でも可能かどうかはわかりません。
Apex セキュリティ フレームワークが可能性にどのように影響するか、または同じデータベース インスタンスから作成された複数のアプリケーションを編成する方法を理解するために、Oracle が発行した Apex ドキュメントを確認することを検討する必要があります。

ただし、注意すべき点がいくつかあります。
単一のデータベース インストール、またはINSTANCE
と呼ばれる複数の部門を含むことができますWORKSPACES
。デフォルトでは、ワークスペースは他のワークスペースにあるものを見ることはできませんが、その中のアプリケーションはバックエンドの同じデータベース スキーマへのアクセスを共有する場合があります。
AWORKSPACE
には、任意の数の APEX アプリケーションを含めることができます。ログイン セキュリティが有効になっている各アプリケーションは、独自のユーザー認証を持つか、「ネイティブ」認証プロセスを使用する場合があります。さらに構成しなくても、同じワークスペース内のアプリケーション ユーザー アカウントは、同じワークスペース内の他のアプリにアクセスできます。
つまり、2 つ以上のUSER NAMESPACES
異なるワークスペース間で同じ名前の 2 つのユーザー アカウントが存在する可能性があります。( ADMIN
WORKSPACE1 と WORKSPACE2 の両方で指定されたユーザーは、同じユーザーではありません。)
NAMED DATABASE USERS
他の複数の Apex ワークスペースにアクセスできる場合があります。この方法で定義されたユーザーは、アクセスを許可するすべてのワークスペースとアプリケーションで一意です。名前付きデータベース ユーザーとして定義されたアクセス ユーザーは、特定のデータベース全体で一意に定義されますINSTANCE
。
結論として、Apex は、単一の共有ホスティング設定でのホスティングと同様に、複数のアプリケーションをサポートするように設計されています。ただし、OP で説明する制御の量を探している場合は、共有ホスティングが独自のDedicated Server
ソリューション VPS
(Virtual Private Server) またはAWS
(Amazon Web Services) ホストになる可能性が高くなります。
次のことを行うには、サーバー リソースに十分にアクセスできるホストが必要です。(a) ホストへの Oracle データベース ソフトウェアのインストールを許可します。(b) サーバー ネットワーク ポートの構成 (開閉) を許可します。(c) インストールされたデータベース インスタンスのアクティブな操作と、付随する HTTP ベースのリスナーによって処理される Web 要求をサポートするのに十分なサーバー リソース。
インストールで、サイズが中程度でトラフィック量の多い複数の Web アプリケーションを管理する場合は、選択した Oracle データベースのバージョンとエディションのインストール手順で説明されている最小サーバー仕様よりもはるかに多くのものが必要になります。