30et
02-01-2011, 01:15 AM
Hi,
We have put vbulletin onto different server to our regular site.
The regular site's server is an apache server, with its url www.server.com and the server with vbulletin is forum.server.com
We use a reverse proxy to redirect our users to it, so that the url remains the same.
This works fine except for when a user clicks a link to view a members' profile. Then instead of displaying www.server.com the url in the browser changes to forum.server.com
Why is this, or how can I make sure it doesn't change the url to forum.server.com?
--------------- Added 1296531025 at 1296531025 ---------------
The links are of the form ..
<div class="lastpost_user" style="white-space: nowrap;">
by <a href="member.php?find=lastposter&f=205" rel="nofollow">RaryGirl</a>
and the htaccess file that redirects people is
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule (.*)/? http://forum.server.com/community/forums/$1 [P,L]
--------------- Added 1296544444 at 1296544444 ---------------
I had a look around the vbulletin files and I saw in includes/functions.php at about line 3080 there is a function exec_header_redirect($url)
This function is 'Halts execution and redirects to the specified URL invisibly'
It looks like it redirects with the php code
header("Location: $url", 0, 302);
Could this be redirecting within the same server and therefore not activating the reverse proxy?
If so how should I change the code? I could change this function or I could change all instances that call this function somehow.
--------------- Added 1296601226 at 1296601226 ---------------
I figured out a solution -
I changed that header location line .. I use a str_replace command to replace 'forum.' with 'www.' and that works.
We have put vbulletin onto different server to our regular site.
The regular site's server is an apache server, with its url www.server.com and the server with vbulletin is forum.server.com
We use a reverse proxy to redirect our users to it, so that the url remains the same.
This works fine except for when a user clicks a link to view a members' profile. Then instead of displaying www.server.com the url in the browser changes to forum.server.com
Why is this, or how can I make sure it doesn't change the url to forum.server.com?
--------------- Added 1296531025 at 1296531025 ---------------
The links are of the form ..
<div class="lastpost_user" style="white-space: nowrap;">
by <a href="member.php?find=lastposter&f=205" rel="nofollow">RaryGirl</a>
and the htaccess file that redirects people is
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule (.*)/? http://forum.server.com/community/forums/$1 [P,L]
--------------- Added 1296544444 at 1296544444 ---------------
I had a look around the vbulletin files and I saw in includes/functions.php at about line 3080 there is a function exec_header_redirect($url)
This function is 'Halts execution and redirects to the specified URL invisibly'
It looks like it redirects with the php code
header("Location: $url", 0, 302);
Could this be redirecting within the same server and therefore not activating the reverse proxy?
If so how should I change the code? I could change this function or I could change all instances that call this function somehow.
--------------- Added 1296601226 at 1296601226 ---------------
I figured out a solution -
I changed that header location line .. I use a str_replace command to replace 'forum.' with 'www.' and that works.