Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 为主页使用不同的目录,而不切换DocumentRoot_Apache_Mod Rewrite - Fatal编程技术网

Apache 为主页使用不同的目录,而不切换DocumentRoot

Apache 为主页使用不同的目录,而不切换DocumentRoot,apache,mod-rewrite,Apache,Mod Rewrite,我正在从Wordpress博客转到Hugo博客。我想切换example.com上的内容,以显示/var/www/newblog中的内容。它当前仅在/var/www/中显示内容。我想保留在新的博客目录,它仍然是什么是显示在我的网站根 但是,我不想更改DocumentRoot,因为我不想影响/var/www/中的其他目录 我需要使用mod_rewrite来完成这项任务吗?这是我从你的帖子中了解到的 当前情况 目录结构: 1) /var/wwww/ 2) /var/www/new-blog/ 1)

我正在从Wordpress博客转到Hugo博客。我想切换example.com上的内容,以显示/var/www/newblog中的内容。它当前仅在/var/www/中显示内容。我想保留在新的博客目录,它仍然是什么是显示在我的网站根

但是,我不想更改DocumentRoot,因为我不想影响/var/www/中的其他目录


我需要使用mod_rewrite来完成这项任务吗?

这是我从你的帖子中了解到的

当前情况

目录结构:

1) /var/wwww/
2) /var/www/new-blog/
1)
DocumentRoot/var/www/

因此指向/var/www

2) 可通过


你想要什么

  • 回复内容来自/var/www/new blog/
  • 回复内容来自/var/www/SOMEDIRECTORY/

解决方案

快速看一眼,我想
Alias
可以做到这一点,但不是在我自己尝试过之后

因此,请使用mod_rewrite(确保已加载mod_rewrite)

这样,
http://example.com
http://example.com/
都将重定向到新的博客目录

任何其他请求(即
http://example.com/dir
)将回复
/var/www/dir
中的内容

需要注意的是,用户将看到他们的地址栏从更改为


额外解决方案

如果您不想让用户知道他们正在被重定向,您可以使用代理

首先确保加载了
mod_proxy
mod_proxy\u http
。删除之前添加的重写规则,改为添加此配置:

ProxyPassMatch   ^/$ http://example.com/new-blog
ProxyPassReverse ^/$ http://example.com/new-blog


很好的是,这两种解决方案都可以让您访问/var/www下的文件或目录http://example.com/被重定向或代理。

别名
可能会起作用()。@Nic3500我似乎无法让它工作。是不是有点像
Alias”/“/new blog”
而不是它应该是什么样子?@Nic3500我做了一个别名
Alias”/“/var/www/new blog”
,而不是在根目录列出新blog中的内容的位置显示内容。但是,直接访问example.com/new-blog可以正确地提供页面服务。@Nic3500错误日志表明我达到了重定向的最大数量。谢谢,这是对我问题的一个很好的回答。你正确地理解了我的问题。我之所以选择mod_rewrite选项,仅仅是因为单击页面上的任何链接都意味着您最终会看到/new blog链接。我将尝试通过使用
/
作为目录重新生成我的静态站点来修复此问题,并查看这是否修复了它,以允许mod_proxy正常工作:)。
ProxyPassMatch   ^/$ http://example.com/new-blog
ProxyPassReverse ^/$ http://example.com/new-blog