从 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 中,我有
<welcome-file>home.xhtml</welcome-file>
,
但这似乎不起作用。什么时候
我输入 mysitename.com,它没有
映射到 home.xhtml。任何线索
在这里?
【问题讨论】:
【参考方案1】:如何删除应用程序名称 wompower6 ,使 url 变为 mysitename.com/home?
这是一个 webapp <Context>
设置和配置取决于使用的 servlet 容器。例如,如果您使用的是 Tomcat,那么基本上有 2 个选项可以让您的 webapp 成为 root webapp。
将 WAR 文件重命名为 ROOT.war
,Tomcat 将默认将其部署在上下文根目录中。
将Webapp/META-INF/context.xml
(或Tomcat/conf/server.xml
,取决于您要在何处定义)中<Context>
元素的path
属性设置为空字符串。例如
<Context path="" ...>
其他容器支持类似的结构。有关详细信息,请参阅他们的文档。如果您使用的是 Eclipse 之类的 IDE,那么您也可以在项目属性的 Web 项目设置 属性中进行设置(右键单击项目并选择 Properties)。将 Context root 值设置为 /
。
在我的 web.xml 中,我有 home.xhtml,但这似乎不起作用。当我键入 mysitename.com 时,它没有映射到 home.xhtml。这里有什么线索吗?
我假设您说的是<welcome-file>
设置。这必须指向一个实际存在的文件,而不是一个虚拟 URL,例如 /faces/*
。基本上有两种方法可以解决这个问题:
提供一个实际存在的 /faces/home.xhtml
文件(甚至可以留空)。
将web.xml
中FacesServlet
映射中丑陋的/faces/*
URL 模式替换为*.xhtml
,这样它就会在每次请求XHTML 文件时启动。
<url-pattern>*.xhtml</url-pattern>
这样您就不需要摆弄/faces/*
URL 模式。
【讨论】:
像往常一样,这又是您的出色回答。让我来做这些改变,然后更新你。 BalusC,一切似乎都运行良好。我在localhost中检查了这个。感谢您用您的知识和经验丰富了论坛。 虽然我在 mysitename.com 中尝试了同样的战争,但它仍然需要 wompower6。我正在使用玻璃鱼。我还需要做其他配置吗? 从markmail.org/message/…得到了解决方案......转到 glassfish 管理控制台,配置 -> 虚拟服务器 ->以上是关于从 URL 中删除应用程序名称的主要内容,如果未能解决你的问题,请参考以下文章
如何从 CodeIgniter 中的 URL 中删除控制器和函数名称