0

我们使用 Apache HTTP Server 版本 2.4 将 example-test-1.com/group/ 重定向到 example-test-1.com/

我无法重定向。

参考网址如下:-

https://httpd.apache.org/docs/2.4/rewrite/remapping.html#old-to-new-intern

配置文件路径 /etc/apache2/sites-enabled/example-test-1.com.conf 设置文件

<虚拟主机 *:80>

ServerName example-test-1.com
ServerAlias example-test-1.com
RewriteEngine on
Redirect permanent /example-test-1.com/group/  /example-test-1.com/

LogLevel warn
ErrorLog /var/log/apache2/example-test-1.com.error.log
CustomLog /var/log/apache2/example-test-1.com.log combined

ProxyPass / ajp://localhost:8009/
ProxyPassReverse /  ajp://localhost:8009/

任何其他可能的方式来实现它。

4

4 回答 4

1

或者,您可以检查 Liferay 自己的配置选项:


指定默认为公司虚拟主机的站点名称。如果指定站点有虚拟主机,则优先。如果没有,那么它将使用公司的虚拟主机。此属性对于从默认 URL 中删除“/web/guest”(或任何其他站点)很有用。例如,如果未设置此属性,则默认 URL 可能是http://localhost:8080/web/guest/home。如果设置了此属性,则默认 URL 可能是http://localhost:8080/home

默认值:

  • virtual.hosts.default.site.name=访客

为 com.liferay.portal.servlet.FriendlyURLServlet 设置私有组、私有用户和公共 servlet 映射。此值必须与 web.xml 中设置的 servlet 映射匹配。

例如,如果私有群组页面映射到“/group”,群组的友好 URL 设置为“/guest”,布局的友好 URL 设置为“/company/community”,则页面的友好 URL 将是http://www.liferay.com/group/guest/company/community。私有组页面映射到站点的私有页面,并且仅对具有适当权限的经过身份验证的用户可用。

例如,如果公共页面映射到“/web”并且组或用户的友好 URL 设置为“/guest”并且布局的友好 URL 设置为“/company/community”,那么页面的友好 URL将是http://www.liferay.com/web/guest/company/community。公共页面可供未经身份验证的用户使用。

用户、组和布局的友好 URL 可以在运行时设置。

默认值:

  • layout.friendly.url.private.group.servlet.mapping=/组
  • layout.friendly.url.private.user.servlet.mapping=/用户
  • layout.friendly.url.public.servlet.mapping=/web
于 2018-08-10T11:46:19.030 回答
0

假设您以 http:mysite.com/web/guest 访问网站,但您想要 http:mysite.com/

这是一个简单的解决方案:

  1. 通过将以下行添加到 portal-ext.properties 来覆盖默认的 company.default.home.url=/web/guest 值。如果文件丢失,请在 /HOME-LIFERAY/Tomcat/webapps/ROOT/WEB-INF/classes 中创建一个,然后重新启动 tomcat 以使更改生效。

company.default.home.url =

  1. 在控制面板>站点>配置>站点设置>虚拟主机中的站点URL->公共页面中的Liferay门户中添加:mysite.com

点击【保存】

您应该能够访问该站点 http:mysite.com/

享受。

于 2019-09-10T17:20:26.547 回答
0

/etc/apache2/sites-enabled/.conf 文件中的更改:

<VirtualHost :80 >
  ServerName example-test-1.com
  ServerAlias example-test-1.com 
  RewriteEngine on 
  <Proxy* >  
    AddDefaultCharset Off 
    Order deny,allow Allow from all 
  </Proxy > 

  RewriteRule ^/group/testsite(.) http://%{HTTP_HOST}/testsite$1 [QSA,NE] 
  ProxyPassMatch ^/testsite(.*) ajp://localhost:8009/group/testsite$1 
  ProxyPass/ ajp://localhost:8009/ ProxyPassReverse / ajp://localhost:8009/ 
</VirtualHost > 

在 /etc/hosts 文件中

127.0.0.1       example-test-1.com
于 2018-08-10T08:31:05.523 回答
0

/web是表示公共页面的 URL 部分,/group是表示私有页面的部分(后跟站点的友好 URL 名称)。

您可以为您的站点页面(公共和私有,分别)设置虚拟主机以匹配实际主机名(请参阅站点设置)。这需要是一个唯一的主机名,然后它将被用来代替/web/sitename/group/sitename明确地命名该站点。您可以在“站点内容/配置/站点设置”中找到此虚拟主机(默认为空)。

此外

Redirect permanent /example-test-1.com/group/  /example-test-1.com/

如果我没记错的话,会将 URL 重定向http://www.example.com/example-test-1.com/group/到。http://www.example.com/example-test-1.com/可能不是你想要的。正如您已经给出的ServerName( 和多余的相同ServerAlias,这个虚拟主机无论如何都不会处理任何其他虚拟主机的任何内容,并且不需要指定域部分,特别是不作为 URL 的非域部分。

于 2018-08-09T10:58:19.740 回答