做过opencms静态导出的人都知道,如果你把opencms的内容静态导出的话,发布路径上都会带上“export\sites\mysite
”,这是opencms默认添加的,怎么才能去掉他呢?我找不到这样的文档,在opencms官方文档上面也没有,网上有一些使用apache rewriteurl的,这实际上和opencms设计的初衷相违背的。
有没有想过,为什么opencms安装好后要通过/opencms/opencms/两个opencms来访问他的后台呢?因为,他的设计人员,认为用户会使用他们的静态导出功能发布网站,但是,往往事与愿违,还有很多人并不知道如何使用,静态导出功能,结果,就出现了使用apache rewriteurl,强行,把在线给录入人员使用的发布内容,展现给用户,而不是,opencms想要给用户的静态导出后的内容。
实际上,这也不奇怪,opencms的文档,和他的功能比较起来,显得太单薄了。我也犯过同样的问题,那好现在我们来纠正这个错误,如何去掉“export\sites\mysite”中的"site\mysite"呢?我们先来看看opencms的源代码:
在
String
org.opencms.staticexport.CmsStaticExportManager.getRfsName(CmsObject cms, String
vfsName, String parameters)
的第1168行,有以下一段代码:
if (exportNameProperty.isNullProperty()) {
// if "exportname" is not set we must add the site root
rfsName = cms.getRequestContext().addSiteRoot(rfsName);
} else {
// "exportname" property is set
String exportname = exportNameProperty.getValue();
if (exportname.charAt(0) != '/') {
exportname = '/' + exportname;
}
if (exportname.charAt(exportname.length() - 1) != '/') {
exportname = exportname + '/';
}
这里面有一个变量exportname 这个变量实际上是资源属性exportname,你随便找一个资源,右键选择它的property然后点击advance按钮,在属性列表里面就可以看到这个字段,看了上面这段代码,我就在想是不是设置了这个属性,就可以使用这个属性替代原来的"/sites/mysite"呢?
事实证明,我的直觉是对的,修改"/sites/mysite"文件夹的属性,改"export"属性为"myexport",单步调试了以后,发现,最终的linke成了"export/myexport",而不是原来的"export/sites/mysite"。
你可能要问,如果我连"myexport"都打算省掉怎么办呢?很简单设置exportname属性='/'就可以了。这时,所有"/sites/mysite"下的所有资源都将被直接导出到"export/"下面。访问的url也会由原来的"/export/myexport" -> "export/"。比如:原来有个页面"http://127.0.0.1/export/myexport/index.html" -> "http://127.0.0.1/export/index.html"来访问。
接下来,我想改掉"export/",这个名字太不专业了,这个也简单,打开{opencms_home}/WEB-INF/config/opencms-importexport.xml,找到<exportpath>${apache_home}/htdocs/export</exportpath>
其中${apache_home}是你安装apache的路径,把后面的"export"改成你心怡的名字就可以了,或者整个路径全部改掉,改成你想要的路径,opencms就会发布到你新定义的位置,然后再找到“<rfs-prefix>${CONTEXT_NAME}/export</rfs-prefix>”这一行,将其中的export,改成你要的名字,比如:"newexport"。生成出来的静态文件里的链接就会变成"/newexport/myexport/..."
好了,至此,静态导出的,发布路径,以及链接问题都解决了,你可以改成让用户访问,你的静态页面了,这对于减轻你的服务器压力,以及SEO都有好处。
分享到:
相关推荐
-- 设置静态导出时是否使用相对 路径 --> <userelativelinks>false <!-- 设置404导出URL的值 --> <exporturl>http://127.0.0.1:8080${CONTEXT_NAME}/handle404 <!-- 暂不清楚此项作用 --> ...
例如,将OpenCMS部署到Web服务器的根目录下,而不是一个名为`opencms`的子目录。这样,URL自然就不会包含“opencms”了。 4. **使用虚拟主机** - 如果你的服务器支持虚拟主机配置,可以创建一个新的虚拟主机,将...
干货,opencms应用中去掉路径中两个/opencms。利用urlrewritefilter,网上方法走不通,自己琢磨得出,完美去除。官方文档中方法会带来一些问题。 学习过程中使用了很多积分,各位不缺的话,支援下。实在没有积分又很...
标题 "opencms 去掉两个/opencms路径的方法" 涉及的是在OpenCMS系统中修改URL结构的问题,通常是为了优化用户体验和搜索引擎优化(SEO)。OpenCMS是一款开源的内容管理系统,它允许用户通过Web界面创建、管理和发布...
《OpenCms开发指南》:深入理解与定制OpenCms OpenCms是一款开源的内容管理系统,旨在为企业级网站提供高效、灵活的管理解决方案。由Alkacon Software开发,OpenCms支持多语言、多站点管理和内容版本控制等功能,是...
### OpenCMS:构建网站的新选择 #### 一、OpenCMS简介与特性 OpenCMS是一款功能强大的开源内容管理系统(Content Management System, CMS),它主要用于构建、管理和维护企业级网站。该系统支持多语言、多用户和多...
1. **内容创建与管理**:书中详细讲解了OpenCms的内容模型,如何创建和编辑内容,以及如何设置内容的权限和访问控制。此外,还会介绍如何使用OpenCms的工作流程模块,实现内容的审核和发布流程。 2. **模板系统**:...
OpenCMS 是一个开源的内容管理系统(CMS),主要由Java语言开发,专为构建企业级网站提供了一个强大而灵活的平台。其Java API 提供了丰富的功能,使得开发者可以通过编程方式与OpenCMS系统进行交互,实现内容的创建...
文档内容包括安装与配置、模板设计、内容创建、工作流管理、安全设置等多个方面,旨在帮助用户无语言障碍地理解和应用OpenCms。 1. **安装与配置**:OpenCms的安装过程简单明了,文档详细介绍了所需的软件环境,如...
这里将OpenCMS的应用基础路径设置为`ROOT`,并启用了自动重载功能。 3. **添加端口映射**:为了确保OpenCMS能够通过不同的端口访问,还需要在`<Service>`标签内添加两个`<Connector>`标签,分别用于监听8081和8082...
其中`docBase`路径应指向OpenCms的安装目录。 #### 五、修改OpenCms配置文件 1. **定位配置文件**:找到`tomcat/webapps/cms623/WEB-INF/config/opencms-system.xml`文件。 2. **增加配置**:在文件中增加以下...
**OpenCMS内容管理入门指南** OpenCMS是一款开源的内容管理系统(CMS),它提供了强大的网站内容创建、管理和发布的功能。本入门指南将带你深入了解OpenCMS的基本概念、安装部署过程以及开发实践,帮助你快速掌握这...
- **创建源代码目录**:在你的开发环境中(如Eclipse或IntelliJ IDEA)创建一个新的Java项目,并设置好OpenCms的类路径依赖。 - **编写模块XML配置**:创建`module.xml`文件,指定模块的基本信息,如名称、版本、...
1. **安装与配置**:首先,手册会介绍如何在服务器上下载、安装OpenCms以及设置必要的环境。这可能涉及Java运行环境(JRE或JDK)、数据库连接(如MySQL、Oracle)以及Web服务器(如Tomcat、Jetty)的配置。 2. **...
系统目录下通常会有多个子目录,每个子目录对应OpenCMS的不同模块或功能,比如administration(后台管理)、templates(模板)、resources(资源)等。这些子目录中的文件可能是XML配置文件、图片、CSS样式表或者...
`system`目录下的文件结构可能与OpenCMS的模块结构相对应,比如`localization`子目录可能包含不同语言的翻译文件,`templates`可能有汉化的页面模板,而`classes`则可能包含汉化后的Java类。 在使用这个汉化包时,...
在学习和使用 OpenCms 内容类型模块时,开发者需要了解如何创建和配置内容类型,包括定义字段、设置权限、建立关联关系以及编写对应的模板。同时,掌握 XML 和 Java 编程也是必要的,因为 OpenCms 的许多定制化工作...
在安装过程中,需要注意配置合适的环境变量、数据库连接信息以及服务器设置,确保OpenCms能正常运行。 三、内容管理 OpenCms的内容管理界面允许用户创建、编辑、发布和管理网页内容。内容可以是文本、图片、视频等...