从 URL 中删除应用程序名称

Posted

技术标签:

【中文标题】从 URL 中删除应用程序名称【英文标题】:remove application name from URL 【发布时间】:2011-09-26 16:17:38 【问题描述】:

我的网站使用 JSF,网址似乎是 http://mysitename.com/wompower6/faces/home.xhtml

我使用的是 prettyfaces,所以如果我在 pretty-config.xml 中使用以下内容,我可以将名称更改为 http://mysitename.com/wompower6/home

<url-mapping id="home">
    <pattern value="/home" />
    <view-id value="/faces/home.xhtml" />
</url-mapping>

我的问题是

    如何删除应用程序 名称 wompower6 ,以便 url 变成 mysitename.com/home ?

    在我的 web.xml 中,我有 &lt;welcome-file&gt;home.xhtml&lt;/welcome-file&gt;, 但这似乎不起作用。什么时候 我输入 mysitename.com,它没有 映射到 home.xhtml。任何线索 在这里?

【问题讨论】:

【参考方案1】:

如何删除应用程序名称 wompower6 ,使 url 变为 mysitename.com/home?

这是一个 webapp &lt;Context&gt; 设置和配置取决于使用的 servlet 容器。例如,如果您使用的是 Tomcat,那么基本上有 2 个选项可以让您的 webapp 成为 root webapp。

    将 WAR 文件重命名为 ROOT.war,Tomcat 将默认将其部署在上下文根目录中。

    Webapp/META-INF/context.xml(或Tomcat/conf/server.xml,取决于您要在何处定义)中&lt;Context&gt; 元素的path 属性设置为空字符串。例如

    <Context path="" ...>
    

其他容器支持类似的结构。有关详细信息,请参阅他们的文档。如果您使用的是 Eclipse 之类的 IDE,那么您也可以在项目属性的 Web 项目设置 属性中进行设置(右键单击项目并选择 Properties)。将 Context root 值设置为 /


在我的 web.xml 中,我有 home.xhtml,但这似乎不起作用。当我键入 mysitename.com 时,它没有映射到 home.xhtml。这里有什么线索吗?

我假设您说的是&lt;welcome-file&gt; 设置。这必须指向一个实际存在的文件,而不是一个虚拟 URL,例如 /faces/*。基本上有两种方法可以解决这个问题:

    提供一个实际存在的 /faces/home.xhtml 文件(甚至可以留空)。

    web.xmlFacesServlet 映射中丑陋的/faces/* URL 模式替换为*.xhtml,这样它就会在每次请求XHTML 文件时启动。

    <url-pattern>*.xhtml</url-pattern>
    

    这样您就不需要摆弄/faces/* URL 模式。

【讨论】:

像往常一样,这又是您的出色回答。让我来做这些改变,然后更新你。 BalusC,一切似乎都运行良好。我在localhost中检查了这个。感谢您用您的知识和经验丰富了论坛。 虽然我在 mysitename.com 中尝试了同样的战争,但它仍然需要 wompower6。我正在使用玻璃鱼。我还需要做其他配置吗? 从markmail.org/message/…得到了解决方案......转到 glassfish 管理控制台,配置 -> 虚拟服务器 -> 有一个带有标签的下拉框:默认 Web 模块。选择您的 Web 应用程序作为默认应用程序。 我在码头服务器中遇到了同样的问题。我需要做哪些修改?需要帮助...

以上是关于从 URL 中删除应用程序名称的主要内容,如果未能解决你的问题,请参考以下文章

从Tomcat URL中删除文件夹名称

如何从 CodeIgniter 中的 URL 中删除控制器和函数名称

从 url 中删除 joomla 视图名称和组件名称

从 URL 中删除上下文名称 - 使用 Spring Security 的 mod_proxy_ajp

从 URL 中删除文件夹名称

如何从 url 中删除 id 和 title 并用域后跟标题名称重写它?