Может это сделать и легко, но как-то до этого не доводилось.
Что имеем:
Собственно основной сайт написан хитро на java не требует для работы апача, висит на порту 8090
и блог к нему на wordpress
Задача, склеить два этих сайта чтобы пользователю было незаметно что это два разных куска одного сайта.
Грубо говоря
abcd.com - часть сайта на java в кторой есть ссылки типа abcd.com/aboutus abcd.com/blahblahblah и т.д. (порт 8090)
abcd.com/blog - часть сайта на WP (тупо Wordpress под апачем на 80 порту)
Для конечного пользователя переход должен быть незаметным.
Рулить всем через Rewrite rulles? если да то как?
Apache один сайт из нескольких составляющих на разных портах
а если типо abcd.com:8090 ?
а если типо abcd.com:8090 ?
Не совсем Вас понял. Конечному пользователю все должно отдаваться без всяких заковырок, тоесть он набирает abcd.com попадает на апача, которой редиректит его по тихому на порт 8090 локалхоста где крутится приложение java.
Редиректит он себе редиректит, пока ВНЕЗАПНО! не приходит задача отдать адрес abcd.com/blog тут он говорит АГА! надо спрашивать уже Wordpress, но конечный пользователь никак не видит этих изменений в адресной строке, для него тупо открывается часть чайта abcd.com/blog с блогом соответственно.
А вон как ну тогда надо думать)
http://forum.ru-board.com/topic.cgi?forum=8&topic=2408
В общем редирект сделать легко с помощью одного RewriteRule
[console]<VirtualHost *:80>
ServerName testnew.abcd.com
ErrorLog /var/log/apache2/testnew_log
CustomLog /var/log/apache2/testnew_log common
RewriteEngine on
RewriteLog "/var/log/apache2/rewritetst.log"
RewriteLogLevel 2
#REWRITE RULLE HERE
RewriteRule ^/blog$ http://blog.abcd.com
#END OF REWRITE RULE
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
</VirtualHost>
<VirtualHost *:80>
ServerName blog.abcd.com
ServerAdmin webmaster@abcd.com
DocumentRoot /var/www/wordpress
ErrorLog /var/log/apache2/wp-error_log
CustomLog /var/log/apache2/wp-access_log common
RewriteEngine on
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 2
<Directory /var/www/wordpress>
Options FollowSymLinks
AllowOverride FileInfo
</Directory>
</VirtualHost>
[/console]
Но в таком виде адрес подменяется, если добавить Флаг [P]
RewriteRule ^/blog$ http://blog.abcd.com [P]
То он пытается загрузить страничку беря ссылки относительно testnew.abcd.com сохраняя адресную строку
И конечно не находит картинки и пр.пр.пр.
Может как-то нужно "Склеивать сйт" не через URL а через пути к директориям... Но пока не знаю как
Если делать так:
[console]<VirtualHost *:80>
ServerName testnew.abcd.com
DocumentRoot /var/www
ErrorLog /var/log/apache2/testnew_log
CustomLog /var/log/apache2/testnew_log common
RewriteEngine on
RewriteLog "/var/log/apache2/rewritetst.log"
RewriteLogLevel 2
#REWRITE RULLE HER
RewriteRule ^/blog$ /wordpress/index.php
#END OF REWRITE RULE
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
</VirtualHost>
[/console]
то опять месиво и неразбериха со ссылкаим и пр.
В настройках wordpress прописано abcd.com/blog или abcd.com?
Поставить фронтэндой нгинкс и не парится :) Заодно и нагрузка сгладится :)