Apache 作为网站子文件夹的不同文件夹

Apache 作为网站子文件夹的不同文件夹,apache,wordpress,zend-framework,mod-rewrite,virtualhost,Apache,Wordpress,Zend Framework,Mod Rewrite,Virtualhost,我需要一些关于URL重写的帮助。情况与此类似 我有一个工作Zend框架网站。现在我必须在Wordpress中添加一个博客(同样有效)。我选择不沉迷于ZF控制器-/行动-/路线制定;我已经看到了一些关于这方面的教程,我认为它们对于一个“简单”的重定向来说太多了。现在,关于“重定向” 它应该是这样的: www.site.com(指向/var/www/zf) www.site.com/blog(指向/var/www/wp) 我知道我应该停止www.site.com/blog进入采埃孚内部,我目前正

我需要一些关于URL重写的帮助。情况与此类似

我有一个工作Zend框架网站。现在我必须在Wordpress中添加一个博客(同样有效)。我选择不沉迷于ZF控制器-/行动-/路线制定;我已经看到了一些关于这方面的教程,我认为它们对于一个“简单”的重定向来说太多了。现在,关于“重定向”

它应该是这样的:

  • www.site.com
    (指向
    /var/www/zf
  • www.site.com/blog
    (指向
    /var/www/wp
我知道我应该停止
www.site.com/blog
进入采埃孚内部,我目前正在使用.htaccess中的
RewriteRule^blog-[NC,L]
来完成这项工作,但仅此而已。如前所述,“只需将其传递给Wordpress”,但我不知道如何确切地做到这一点

相关问题:
我从未尝试过,但Apache是否在两种不同的vHost中支持此功能?
ServerName www.site.com
(vhost用于ZF站点)

ServerName www.site.com/blog
(WP site的vhost)

ServerName技巧将不起作用:ServerName指令中不能有路径名

对于mod_rewrite,您应该能够通过以下方式逃脱:

RewriteEngine on
RewriteBase /
RewriteRule ^blog/(.*)$ wp/$1 [L]
RewriteRule ^(.*)$ zf/$1 [L]
www.site.com(指向/var/www/zf)

www.site.com/blog(指向/var/www/wp)

要实现这一点,最简单的方法是创建一个别名,您需要一个子url指向VirtualHost的DocumentRoot目录之外

在VirtualHost块内添加:

Alias /blog /var/www/wp

<Directory /var/www/wp>
    Options All
    AllowOverride All
    order allow,deny
    allow from all
</Directory>
Alias/blog/var/www/wp
选项全部
允许超越所有
命令允许,拒绝
通融

*这假设您以某种方式为该目录启用了PHP。

Ah,否:您需要将其放在顶级文件夹中。如果你把它放在ZF文件夹的.htaccess中,你将无法影响ZF上面的目录(比如你的博客文件夹)。我已经在本地测试过了,它可以工作,但是wp链接指向(比如)
http://localhost/wordpress/?page_id=7
(有效),而不是
http://local-play/blog/?page_id=7
。取消我以前的评论。这是因为我在这个新配置之前安装了WP。当安装为“/blog”子url时,它可以正常工作。谢谢,@rightstuff。这需要启用Apache mod_别名。我正在一个laravel项目中尝试这一点,它适用于顶级别名(即www.site.com/blog),但不适用于别名子目录(即www.site.com/blog/abc)。取消我以前的评论,我通过将这一行添加到laravel项目的.htaccess文件“RewriteBase/blog”中,成功地使其适用于子目录尝试将以下内容添加到感兴趣目录上方父目录中的
.htaccess
RedirectMatch^/foo/$/foo/bar/
RedirectMatch^/foo/$/bar/
。另见。