让我的oracle apex应用程序指向网站主页url

时间:2014-04-11 18:49:39

标签: http oracle-apex oracleapplications

我的oracle apex数据库应用程序内置在oracle Web托管服务器中。例如,它就像http://www.myapexhostingserver.com/pls/apex/f?p=4550:1:13225322000472

这里我创建了许多apex数据库应用程序。现在我为每个这些顶级应用程序都有特定的域。目前,我已将每个域设置中的重定向写入我的顶级应用程序。 例如,

http://www.domain1.com has a redirect url set to http://myapexhostingserver.com/pls/apex/f?p=162:LOGIN:16888048444232

http://www.domain2.com has a redirect url set to http://myapexhostingserver.com/pls/apex/f?p=165:LOGIN:16888048444232

重定向不是Google友好的。但我也不能为每个域购买oracle web hosting。还有其他好的解决方案吗?

意思是,当我购买共享托管服务器时,我可以创建我想要的尽可能多的PHP应用程序。但不确定这是否也可以在oracle apex中使用。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

使用搜索引擎可见设计开发Oracle Apex应用程序

这是对APEX应用程序url语法的不同风格问题的讨论。还解释了如何组织APEX工作空间命名空间以显示如何使用单个数据库实例自定义应用程序URL。

  

评论:某些互联网搜索可以产生您正在寻找的答案。有许多开发人员和咨询公司已经解决了在流行的,规范的URL路径和Oracle APEX使用的符号之间进行转换的问题。

一些被证明有用的搜索字词包括:oracle apex pretty urlurl mappinghttp url mapping plsql。最有用的指南是Oracle PL / SQL中的示例,但您也可以深入了解并在Web服务器引擎(即Apache HTTP Server)上设置规则,以重新解释URL请求,以便屏蔽APEX样式的地址。这不是必要的,但有一些技术,例如" url重新映射"是可能的解决方案之一。

这篇文章的内容是关于搜索引擎优化(SEO)细节的指南,这可能与OP关于" Google Friendliness&#34的问题有很大关系;,但超出了本解决方案指南的范围。

Oracle APEX网站搜索引擎是否友好?

直接引自原帖的评论值得研究和解决。这大多是不正确的结论。

  

重定向不是谷歌友好。

这实际上取决于您在APEX网站上的设置方式。重定向是管理使用备用URL命名方案的传入流量的一种方法,但这不是唯一的方法。

在Apex中完成了一些成功的博客和网站:

某些在线群组(​​例如APEX开发人员团队APEX Ninjas)继续报告来自搜索引擎(例如 Google )的推荐人群,而他们的Oracle APEX支持的网站和博客的方式没有太多变化。

另一个很好的例子是活跃的APEX网站:" ASK Tom" ,由Oracle的Tom Kyte创建。这个网站已经在APEX上运行了很多年了,对这个网站页面的引用继续在搜索引擎结果页面上显示来自" ASK Tom"的熟悉的APEX样式网址格式。网站。

使用更好的导航网址进行清晰度

Web服务器REDIRECTS是在Oracle Apex侦听器之上映射更清晰的URL地址语法的一种方法。我们使用Abyss Web Server Engine,它是一个轻量级的http服务器,位于我们公司的APEX应用服务器的前面。它不是绝对必要的,但我们之所以选择它是为了简化单个Web服务器任务的管理。重定向对我们来说也很好。虽然我们尚未进一步探讨,但virtual hostingurl rewriting rules等高级功能可能会进一步说明您需要在同一个网站上分离多个TLD(主域)或C-NAME(子域) Apex监听器实例。

APEX应用程序中最丑的URL表单是默认的。它是可辨认的,但对人眼不友好或不够简单,难以记住。以下是分配给我的应用程序的HOME页面的URL的示例镜头:APEX-LAB-PUB

Default Oracle APEX Application and Page Identification

这是Oracle APEX Web服务器将解释的URL的常见格式。因此,要遵守的一般格式是条款之后的所有内容: f?p = ...

http://somedomain.com/pls/apex/f?p=1312786:5:987529480

通过使用设置ALIAS名称的替代选项,您可以在相同的布局中创建快捷网址表单,但使用人类可读的别名分配:

Aliased Oracle APEX Application and Page Identification

这很好,但也有一种常见的做法是使用Oracle Apex的原生REST Web服务侦听器,以便内部和外部链接看起来更简单。简化的url语法还可以使重定向挂钩更清晰,更有条理。

使用REST Web服务组织APEX应用程序网站

为了开发这个例子,我使用了Oracle's free Apex hosting层。虽然它对可用的功能有一些限制,但是在这个平台的Apex监听器上启用了RESTful Web服务,这正是我们所需要的。

将Web服务URI映射到Apex URL请求

这是我们将使用的url语法,如下所示:

https://apex.oracle.com/pls/apex/...(workspace)/...(uri request)

统一资源标识符(URI)

这是将附加到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服务设置两个OUT参数,以表示上述PL / SQL语句中两个绑定变量的值{{1} }和URL

superEasyURL REST Service OUT Parameters

关于HTTP 303状态标题代码

还有另一种称为HTTP 303的HTTP状态代码。您可以使用APEX提供重定向的页面和内容。 Oracle Application Express及其RESTful Web服务可以接收在后端转换为APEX格式的传统URL请求。

303 See Other 已被提议作为响应URI的请求的一种方式,该URI根据语义Web理论识别真实世界的对象(另一种是使用散列URI)。

  

例如,如果http://www.example.com/id/alice标识了一个人,Alice,那么服务器响应使用STATUS的GET请求是不合适的,因为服务器可以不要自己送爱丽丝。相反,服务器会发出一个303 See Other响应,该响应重定向到一个单独的URI,提供Alice人员的描述。

     

Reference Excerpt: Wikipedia.com

演示工作示例

这是在我个人的Oracle托管工作区中创建的示例。这是将由之前构建的REST服务解释的URL。

200 OK

请注意,在共享实例上,需要另外引用用户的工作区名称才能进行此转换。我不是100%确定是否需要,但我能够通过在最终路径引用中使用它来完成此演示。

Simple URL Path Before Service Translation

从APEX-LAB-PUB应用程序中显示:https://apex.oracle.com/pls/apex/rgpascual/display/{app}/{page} |_________| | | - Workspace ID String (required by the listener) - 页面(别名)(别名为:HOME)。

Output Call to an Existing App and Page Alias

结论,问题和一般建议

这篇文章的努力提供了使用漂亮的url语法来表示Apex应用程序网站中的导航链接的可能性。导航链接列表可能如下所示,而不是Oracle定义的默认表示法:

注意:这些链接不起作用。它们只是为了说明这种解决方案的优点。

  
      
  •      

    实际请求的网址:
       someapexserver ... / PLS /顶点/ MYWORK /显示/新应用内/家

  •   
  • 关于我们

         

    实际请求的网址:
       someapexserver ... / PLS /顶点/ MYWORK /显示/新应用程序/约

  •   
  •      

    实际请求的网址:
       someapexserver ... / PLS /顶点/ MYWORK /显示/新应用程序/联系我们

  •   
  • <强>协会

         

    实际请求的网址:
       someapexserver ... / PLS /顶点/ MYWORK /显示/新应用内/联营

  •   
  • 商业行动

         

    实际请求的网址:
       someapexserver ... / PLS /顶点/ MYWORK /显示/新应用程序/ businessops

  •   

现在,使用在此解决方案的初始设计中选择的URI模板,引用链接和导航是统一且一致的。

其他问题:单个Apex实例的应用程序容量

还有一个问题是Oracle Apex管理在单个实例中创建的应用程序的方式。

  

...意思是,当我购买共享托管服务器时,我可以创建我想要的尽可能多的PHP应用程序。但不确定这是否也可能在oracle apex中。

您应该考虑查看Oracle提供的Apex文档,以了解Apex安全框架如何影响可能性或组织从同一数据库实例创建的多个应用程序。

Oracle APEX Login Screen

但有几点需要注意:

  • 单个数据库安装,或APEXLABPUB01可以包含多个名为INSTANCE的分部。默认情况下,工作空间无法查看其他工作空间中的内容,但其中的应用程序可能共享对后端相同数据库模式的访问权限。

  • WORKSPACES可能包含任意数量的APEX应用程序。每个启用了登录安全性的应用程序都可以拥有自己的用户身份验证,或者可以使用&#34; native&#34;验证过程。如果没有进一步配置,同一工作区中的应用程序用户帐户将可以访问同一工作区中的其他应用程序。

  • 每个工作区的WORKSPACE是分开的,即两个或多个不同工作区之间可能有两个具有相同名称的用户帐户。 (WORKSPACE1和WORKSPACE2中名为USER NAMESPACES的用户不是同一个用户。)

  • ADMIN可以访问其他多个Apex工作区。以这种方式定义的用户在允许其访问的每个工作空间和应用程序中是唯一的。定义为命名数据库用户的访问用户在给定数据库NAMED DATABASE USERS中定义为唯一。

总而言之,Apex旨在支持多个应用程序,类似于托管在单个共享主机设置上。但是,如果您正在寻找OP中描述的控制量,那么您的共享托管很可能是您自己的INSTANCE解决方案,Dedicated Server(虚拟专用服务器)或{{1} (亚马逊网络服务)主持人。

您将需要具有对服务器资源的足够访问权限的主机:(a)允许在主机上安装Oracle数据库软件。 (b)允许配置(打开和/或关闭)服务器网络端口。 (c)足够的服务器资源,以支持已安装的数据库实例的活动操作以及由附带的基于HTTP的侦听器提供服务的Web请求。

如果您希望安装管理多个中等规模和流量的Web应用程序,则需要的内容远远超过您选择的Oracle数据库版本和版本的安装说明中描述的最低服务器规范。