Мне нужна помощь в перезаписи 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)
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 в некотором роде для этого каталога.
http://localhost/wordpress/?page_id=7
(который работает) вместо http://local-play/blog/?page_id=7
Трейл ServerName не будет работать: вы не можете иметь имена путей в директиве ServerName.
Для mod_rewrite вы должны уйти от чего-то вроде этого:
RewriteEngine on
RewriteBase /
RewriteRule ^blog/(.*)$ wp/$1 [L]
RewriteRule ^(.*)$ zf/$1 [L]
.htaccess
в родительском каталоге над интересующим каталогом:RedirectMatch ^/foo/$ /foo/bar/
илиRedirectMatch ^/foo/$ /bar/baz/
. Также см. Как заставить apache2 перенаправлять в подкаталог .