Другая папка как подпапка сайта

17

Мне нужна помощь в перезаписи URL. Случай аналогичен этому.

У меня есть рабочий сайт Zend Framework. Теперь я должен добавить блог в Wordpress (также работает). Я решил не заниматься ZF-контроллером/action-/route-making; Я видел пару учебников об этом, и я считаю их слишком много для "простого" перенаправления. Теперь о том, что "перенаправление"...

Вот как это должно выглядеть:

  • www.site.com (указывает на /var/www/zf)
  • www.site.com/blog (указывает на /var/www/wp)

Я знаю, что я должен остановить www.site.com/blog, чтобы войти в внутреннюю часть ZF, и в настоящее время я делаю это с RewriteRule ^blog - [NC,L] в своем .htaccess, но об этом. Как сказал @jason, "просто передайте его Wordpress", но я не знаю, как именно это сделать.

Связанный вопрос:
Я никогда не пробовал, но поддерживает ли Apache это в двух разных vhosts?
ServerName www.site.com (vhost для сайта ZF)
ServerName www.site.com/blog (vhost для сайта WP)

Теги:
mod-rewrite
virtualhost
zend-framework

2 ответа

38
Лучший ответ

www.site.com(указывает на /var/www/zf )

www.site.com/blog (указывает на /var/www/wp )

Способ easiset для достижения этого, где вы хотите, чтобы суб-url указывал вне каталога VirtualHost DocumentRoot, заключается в создании псевдонима...

Внутри блока VirtualHost добавьте:

Alias /blog /var/www/wp

<Directory /var/www/wp>
    Options All
    AllowOverride All
    order allow,deny
    allow from all
</Directory>

* Предполагается, что у вас есть PHP в некотором роде для этого каталога.

  • 0
    Я проверил это локально, и это работает, но ссылки wp указывают на (скажем) http://localhost/wordpress/?page_id=7 (который работает) вместо http://local-play/blog/?page_id=7
  • 0
    Отмените мой предыдущий комментарий. Это потому, что я установил WP до этой новой конфигурации. При установке под-URL "/ blog" он работает нормально. Спасибо, @rightstuff.
Показать ещё 3 комментария
0

Трейл ServerName не будет работать: вы не можете иметь имена путей в директиве ServerName.

Для mod_rewrite вы должны уйти от чего-то вроде этого:

RewriteEngine on
RewriteBase /
RewriteRule ^blog/(.*)$ wp/$1 [L]
RewriteRule ^(.*)$ zf/$1 [L]
  • 0
    Это должно быть в htaccess ZF, я полагаю ...
  • 0
    Ах, нет: вам нужно поместить это в папку верхнего уровня. Если вы поместите его в папку .htaccess папки ZF, вы не сможете повлиять на каталоги над zf (например, папку вашего блога).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню