如何使用 apache vhost 重定向到另一个 url?

Posted

技术标签:

【中文标题】如何使用 apache vhost 重定向到另一个 url?【英文标题】:How to redirect to another url using apache vhost? 【发布时间】:2020-11-01 19:18:07 【问题描述】:

我已经在我的机器上安装了 wordpress。我有两个 apache 目录来服务网站。

第一个是/var/www/html/wordpressone,第二个是/var/www/html/wordpresstwo。现在我可以使用以下网址访问这些网站

http://192.168.0.1/wordpressone -> /var/www/html/wordpressone
http://192.168.0.1/wordpresstwo -> /var/www/html/wordpresstwo

现在我想定义一个自定义网址,例如。

http://192.168.0.1/admin -> /var/www/html/wordpressone
http://192.168.0.1/user -> /var/www/html/wordpresstwo

但我无法使用 Vhost 来做到这一点。我尝试了以下方法,但没有成功。

我在/etc/apache2/sites-available 下创建了一个文件home.conf 并启用了它。

<VirtualHost *:80>
ServerName http://192.168.0.1/user
DocumentRoot /var/www/html/wordpressone
<Directory />

请告诉我我需要执行哪些步骤来实现这一目标?

【问题讨论】:

不能重命名文件夹吗?如果你必须通过 Apache 来做,你可以使用aliases。但这将是一个非常简单的问题的非常复杂的解决方案(只需重命名文件夹即可解决)。 我认为你错过了 VH 的重点!使用ServerName wpone.test,您将能够通过一个简单、相当正常的 URL 访问/var/www/html/wordpressone。请注意,您必须在 HOSTS 文件中添加一行 您还应该安装 INTO 虚拟主机,以便 WP 奇怪地希望将安装的 url 保存到其数据库中。或者有关于移动站点时如何更改数据库的WP教程 “不,我不想重命名文件夹。这不是解决方案” - 根据您在问题中提出的问题,这绝对是一个解决方案。如果您向我们提供更多信息来说明您为什么说它不是,我们可能会更容易找到适合您的解决方案。现在,它只是没有多大意义。 但是您尝试做的事情与域无关,而且您可能永远不会“真正”做这些事情。查看@RiggsFolly 在他的第一条评论中提出的建议可能会更有用。将几个假主机名添加到您的 HOSTS 文件中,并使用它们设置两个正确的虚拟主机。喜欢admin.testuser.test 【参考方案1】:

全部取决于文档根目录。它会将您导航到给定的文件夹 Just Make two host one with

http://192.168.0.1/admin

里面有配置

<VirtualHost *:80>
ServerName http://192.168.0.1/admin
DocumentRoot /var/www/html/wordpressone
<Directory />

还有一个

http://192.168.0.1/user

里面有配置

<VirtualHost *:80>
ServerName http://192.168.0.1/user
DocumentRoot /var/www/html/wordpresstwo
<Directory />

【讨论】:

以上是关于如何使用 apache vhost 重定向到另一个 url?的主要内容,如果未能解决你的问题,请参考以下文章

使用 apache vhost 配置重定向到新域

回退 - 使用 apache vhost 配置重定向到新域

使用 apache vhost 配置有选择地重定向到新域

Apache2 vHost conf - 重定向到不同的服务器

重定向时的 Apache vhost 双斜杠

在通配符 vhost apache (xampp) 设置中重定向子子域