View Full Version : Modding phpBB to be Search Engine Friendly


Pyrrhonist
03-04-2004, 03:32 PM
Hello everyone.

Ok, here's the accumulation of all the tricks that I picked up while making the SEO guy board search engine friendly before we switched to vBulletin. It was compiled from posts located on the phpBB official forums, and I definitely need to give props to Jaffry over at the phpBB forum who made this up the first place.

The first thing that needs to be done is to make the sid that gets appended to either disappear or look the same to spiders every time they come through the forum. I found 2 ways of doing this:

1) Make the append_sid function in includes/sessions.php show the same sid to the spider every time they float through.

i) Open /includes/sessions.php
ii) Locate the append_sid function (it's the last one)
iii) Replace:

global $SID;

if ( !empty($SID) && !preg_match('#sid=#', $url) )


with:


global $SID, $HTTP_SERVER_VARS;
if ( !empty($SID) && !preg_match('sid=', $url) && !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') && !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'slurp@inktomi.com'))


Save and close the sessions.php file. I had difficulties getting this to work properly, which is why I tried the next two methods as well. This is by far the most elegant method though, and the one that I would recommend to you to try first. ONLY attempt the next two options if this doesn't work.

The other way of accomplishing the same thing is to just delete all the content from append_sid except for the return line. If you do this, you are guaranteed to never have a sid again. When I tried this however, I encountered problems with the administration area, and tracked them back to the lack of SID.

The third solution is a brute force attack. This involves find/replacing every instance of append_sid() in the main phpBB folder and deleting it. If you manage to catch them all, it pretty much accomplishes the same goal as removing the append_sid() function, but the admin area will still work.

This isn't the most elegant method by any means, and I laugh at myself now when i think that I actually tried it, but it DID work... Attempt at your own risk.

The other major mod is to make the forum itself searchable. I'll get to that next time.

Pyrrhonist
03-04-2004, 03:58 PM
Ok. Now, to make the threads themselves searchable, we use mod_rewrite if you are using Apache for your webserver, or you can perform an ASAPI_rewrite if you're on an IIS box. I don't know ASAPI, and we use Apache anyways, so that's what my example is meant for.

Feel free to post the matching file for IIS, or I'll try to get to it sometime in the future.

Ok, to make the posts searchable, first open up /includes/page_header.php and add the following code where it reads

//
// Generate logged in/logged out status
//

ob_start();


Make sure there are no spaces at the line ends after it's pasted


function replace_for_mod_rewrite(&$s) {
$urlin = array(
"'(?<!/)viewforum.php\?f=([0-9]*)&topicdays=([0-9]*)&start=([0-9]*)'",
"'(?<!/)viewforum.php\?f=([0-9]*)&mark=topics'",
"'(?<!/)viewforum.php\?f=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&view=previous'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&view=next'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&postdays=([0-9]*)&postorder=([a-zA-Z]*) &start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&start=([0-9]*)&postdays=([0-9]*)&postorder=([a-zA-Z]*)&highlight=([a-zA-Z0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)'",
"'(?<!/)viewtopic.php&p=([0-9]*)'",
"'(?<!/)viewtopic.php\?p=([0-9]*)'",
);

$urlout = array(
"viewforum\\1-\\2-\\3.html",
"forum\\1.html",
"forum\\1.html",
"ptopic\\1.html",
"ntopic\\1.html",
"ftopic\\1-\\2-\\3-\\4.html",
"ftopic\\1.html",
"ftopic\\1-\\2.html",
"ftopic\\1.html",
"sutra\\1.html",
"sutra\\1.html",
);

$s = preg_replace($urlin, $urlout, $s);

return $s;
}


In /includes/page_tail.php, after

$db->sql_close();

Add this:

$contents = ob_get_contents();
ob_end_clean();
echo replace_for_mod_rewrite($contents);
global $dbg_starttime;


In the same file, (/includes/page_tail.php) after:

ob_end_clean();


Add this:

echo replace_for_mod_rewrite($contents);
global $dbg_starttime;


The last thing to change is your .htaccess file (for Apache servers). The .htaccess file is a system file for Apache, and the . in front of it makes it invisible to many via ftp. Please ensure that there isn't already a .htaccess present. It is used for much more than just rewriting urls and can have some pretty catastrophic effects on your site if you don't preserve its contents.


# .htaccess. Add the new code at the bottom of the .htaccess file.
# Do NOT overwrite file without backing up.

RewriteEngine On

RewriteRule ^forums.* index.php
RewriteRule ^forum([0-9]*).* viewforum.php?f=$1&mark=topic
RewriteRule ^viewforum([0-9]*)-([0-9]*)-([0-9]*).* viewforum.php?f=$1&topicdays=$2&start=$3
RewriteRule ^forum([0-9]*).* viewforum.php?f=$1
RewriteRule ^ptopic([0-9]*).* viewtopic.php?t=$1&view=previous
RewriteRule ^ntopic([0-9]*).* viewtopic.php?t=$1&view=next
RewriteRule ^ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4
RewriteRule ^ftopic([0-9]*)-([0-9]*).* viewtopic.php?t=$1&start=$2
RewriteRule ^ftopic([0-9]*).* viewtopic.php?t=$1
RewriteRule ^ftopic([0-9]*).html viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5
RewriteRule ^sutra([0-9]*).* viewtopic.php?p=$1


If your forum is part of a subdomain, then the above file may not work for you. In that case, try this one:


RewriteEngine On

RewriteRule ^forums.* /index.php
RewriteRule ^forum([0-9]*).* /viewforum.php?f=$1&mark=topic
RewriteRule ^viewforum([0-9]*)-([0-9]*)-([0-9]*).* /viewforum.php?f=$1&topicdays=$2&start=$3
RewriteRule ^forum([0-9]*).* /viewforum.php?f=$1
RewriteRule ^ptopic([0-9]*).* /viewtopic.php?t=$1&view=previous
RewriteRule ^ntopic([0-9]*).* /viewtopic.php?t=$1&view=next
RewriteRule ^ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* /viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4
RewriteRule ^ftopic([0-9]*)-([0-9]*).* /viewtopic.php?t=$1&start=$2
RewriteRule ^ftopic([0-9]*).* /viewtopic.php?t=$1
RewriteRule ^ftopic([0-9]*).html /viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5
RewriteRule ^sutra([0-9]*).* /viewtopic.php?p=$1


Remember, in your robots.txt file, you should add the following lines to prevent several files from getting spidered. This is done to prevent the feeding of duplicate content to Google.


Disallow: /your-forum-folder/sutra*.html$
Disallow: /your-forum-folder/ptopic*.html$
Disallow: /your-forum-folder/ntopic*.html$
Disallow: /your-forum-folder/ftopic*asc*.html$


Ok, that's it. Again, thanks to Jaffrey at the phpBB forums for compiling this original post.

bigboy
04-27-2004, 08:53 AM
Hello SEO BOB,
I did every thing as per above post but my board page is coming blank !!! :(
Do you have any idea ?

P.S I check my PHP info that mod_rewrite is enabled

Pyrrhonist
04-27-2004, 09:09 AM
Bigboy,

welcome to the forum,

What's your forum's url? I would like to take a look at it before making any comments.

complainer
05-16-2004, 07:33 AM
[QUOTE=SEO Bob]
The first thing that needs to be done is to make the sid that gets appended to either disappear or look the same to spiders every time they come through the forum. I found 2 ways of doing this:

1) Make the append_sid function in includes/sessions.php show the same sid to the spider every time they float through.
[/QUOTE]

Hello and thank you! I've had a phpbb forum for some time now. I didn't realize how easy it was to make it spider-able until I saw your post. I followed your first step and here it is a week later and I see Googlebot munching on my forum pages.

I haven't braved the "make the threads searchable" modification yet, but I'll report back if and when I do.

jocelyn
05-16-2004, 07:39 AM
Welcome to the forum Complainer
Nice to see you here.

complainer
05-16-2004, 07:48 AM
[QUOTE=jocelyn]Welcome to the forum Complainer
Nice to see you here.[/QUOTE]
Thanks, it's like walking into a room filled with old friends.

jocelyn
05-16-2004, 07:53 AM
[QUOTE=complainer]Thanks, it's like walking into a room filled with old friends.[/QUOTE]
Yes... and most of us found the forum on Google...
SEO GUY is not using other forums to promote his.

Did you find it on google ?

seo guy
05-16-2004, 05:11 PM
Yeah Im not huge fan of flaming, I do have it in my sig on some other forums but I try not to mention it or promote it when speaking elsewhere, kind of cheesy if you ask me. MIND YOU IF YOU GUYS WANNA SPAM FOR ME >>>>>> LOL JK
Welcome Aboard complainer

eCommando
05-17-2004, 12:04 AM
Why switch to vBulletin from phpBB? Are there advantages?
I am interested in getting more info on the forum software.

Pyrrhonist
05-17-2004, 12:37 AM
vBulletin is better. it's that simple.

if you go to the vBulletin forums www.vbulletin.com/forum i'm sure you'll find more information on this subject than you care to know.

But, from a non-biased stanspoint. We started the seo guy forum on phpBB, which was great at first, but vBulletin offers s million times more scalability, customizability, and stability (performance wise, but i has having fun saying bility) than phpBB.

With phpBB whenever we wanted to change a feature, it involved a hack - like the se friendly hack above. with vBulletin, you can change a template file in the admin area (you have to see the templates to fully get the picture, sorry) and the changes are reflected site wide without missing a single variable call and having the whole thing come crashing down on you.

Hopefully that helps.

complainer
05-17-2004, 04:24 AM
[QUOTE=jocelyn]
Did you find it on google ?[/QUOTE]

I think I heard about it from rz. A word of mouth (word of keyboard?) type of recommendation.


[QUOTE=SEO Bob]
vBulletin is better. it's that simple.[/QUOTE]

I started with phpBB because it was free and easy to set up. Right now my forum is small, but I could see wanting to switch over if it becomes more popular. That seems to be what a lot of sites do.

ABS659
05-28-2004, 03:22 PM
should I put a forum on a dating service?

Pyrrhonist
05-28-2004, 10:45 PM
ABS,

I would put a forum on ANY site that encourages user participation. They're a great way to make a community around your site, and always provide a ton of relevent content.

bobafind
05-29-2004, 07:39 PM
What issues did you (mods and admins of seo-guy forums) face wen switching over to vBulletin? Did you lose all the posts? Get a lot of complaints?

Was there a tool for migration? I would think that vBulletin would provide some kind of migration functionality since it seems to provide every other useful functionality there is!

Joel

Pyrrhonist
05-29-2004, 11:20 PM
vB provides a full suite of porting tools for almost every forum. really made the process quite easy. One thing that you might want to think about though is that vB likes to empty the database before installing - so your hosting package should either have multiple mySQL db's as part of your package or be careful when doing the install.

We didn't have any issues when switching over though. One of the reasons for that was because we really didn't have any members - we switched over before seo guy started promoting the forum.

All the posts were switched over, but of course the urls changed, so any backlinks were lost. That's just another reason why I like to go with vB from the start instead of switching once it takes off.

I've never once heard anyone say to me that they liked the old phpBB forum more than this one.

Hmm.. I think i've answered most of those. If you have any more questions, just ask.

Wallboy
06-10-2004, 08:00 PM
I can't get the mod_rewrite to work at all. When I'm not signed in and I click on a forum i just get a 404. My server does have mod_rewrite enabled and it's Apache 1.3.31. My forum is located on my addon domain, so the path to the forum is public_html/addondomain/forums/. I've tried putting RewriteBase /addondomain/forums into the .htaccess file also but still no luck. The .htaccess file is located in my public_html folder. Should it be maybe in my addondomain folder? I just can't figure out what possibly could be wrong.

GByte
06-11-2004, 05:16 AM
wallboy - the .htaccess file should be in public_html/addondomain/ - i.e the root of your site

Wallboy
06-11-2004, 09:16 AM
Ok thank you, i'll try that. Should I have a line that says RewriteBase /forums in my .htaccess file also?

edit:
Ok I put the htaccess file in my addondomain folder like you said. But now when I try to access my forum I just get a 404.

Arizona Web
06-11-2004, 09:26 AM
The only advantage PHPbb has over VB is it is free.

Thanks for the awesome post SEO Bob. You just saved me a buttload of work I would have had to do one day.

GByte
06-11-2004, 09:33 AM
wallboy - do you want paste your .htaccess file in here so I can have a look - also the location of your forum? If you would rather, PM it to me

Wallboy
06-11-2004, 09:48 AM
RewriteEngine On

RewriteRule ^forums.* /index.php
RewriteRule ^forum([0-9]*).* /viewforum.php?f=$1&mark=topic
RewriteRule ^viewforum([0-9]*)-([0-9]*)-([0-9]*).* /viewforum.php?f=$1&topicdays=$2&start=$3
RewriteRule ^forum([0-9]*).* /viewforum.php?f=$1
RewriteRule ^ptopic([0-9]*).* /viewtopic.php?t=$1&view=previous
RewriteRule ^ntopic([0-9]*).* /viewtopic.php?t=$1&view=next
RewriteRule ^ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* /viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4
RewriteRule ^ftopic([0-9]*)-([0-9]*).* /viewtopic.php?t=$1&start=$2
RewriteRule ^ftopic([0-9]*).* /viewtopic.php?t=$1
RewriteRule ^ftopic([0-9]*).html /viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5
RewriteRule ^sutra([0-9]*).* /viewtopic.php?p=$1

Forum URL is http://www.airsoft-guns.org/forums
Right now it's not working because I got the .htaccess file in my public_html/airsoft-guns/ folder. When I take the contents of the htaccess file out, the forum works. I've also tried putting RewriteBase /forums into the htaccess file but still get the 404.

GByte
06-11-2004, 10:23 AM
well that all looks ok, I know you said it is, but are you definatley sure mod_rewrite is installed?

you can check this by creating a test.php page with:

<?php
phpinfo( );
?>

View the page and scroll down to apache and look at the Loaded Modules to see if mod_rewrite is there. Other than that its hard to say, I would check over the mod what is at the start of this thread and double check that you have done everything corectly.

Wallboy
06-11-2004, 11:21 AM
I'll try that when I get home. But i'm pretty sure it's enabled because when I just add a junk line into the htaccess file, like sdlfjsdf93rsdf8 I get an internal server error when I try to load a page.

Also I seen some 404's in my logs for my main site coming up. It seems that the mod_rewrite thats in my addon domain folder is trying to read from public_html/forums which doesn't exist, instead of public_html/airsoft-guns/forums. So I think thats whats causing the 404 right now.

Wallboy
06-11-2004, 02:04 PM
Ok i'm getting close to getting it to work. I moved the .htaccess file into my actual formum directory. Now http://www.airsoft-guns.org/forums does indeed work and when I click to go into one of the form caterogies I get a page does not exist instead of a 404.

GByte
06-11-2004, 02:11 PM
ok I see if you go to http://www.airsoft-guns.org/forums/forum2.html ir does work!!

so now you need to edit the urls - let me just look aver the original mod - I amust say this is starnge though

GByte
06-11-2004, 02:14 PM
ok I really think you need to go over the whole mod and check what you have done - if you go to the link above and try to click on the topic - the url is:

http://www.airsoft-guns.org/forums/about5.html - which is wrong

it should actually be : http://www.airsoft-guns.org/forums/ftopic5.html

which works - so I would double check what you have done

Wallboy
06-11-2004, 02:25 PM
Ok hmm I'll go over it. So the http://www.airsoft-guns.org/forums/forum-2.html works without a hypen... Weird.

GByte
06-11-2004, 02:36 PM
I just think you may have got a few things round the wrong way - I have re-written the urls for my forum and the mod I used is slightly different

The link with the hyphen is used somewhere along the lines in this mod, I say this becuase of these lines in the .htaccess

RewriteRule ^ftopic([0-9]*)-([0-9]*).* /viewtopic.php?t=$1&start=$2

that I guess is used to view last topic - have you installed any other mods on your forum before installing this one? - they may both be conflicting

Wallboy
06-11-2004, 02:40 PM
Yeah I installed Able2Know SEO 2.0.0 mod before... I reread the mod again and for page_header it says add the following after ob_start; or whatever it's called... Well just before that I have a line that says

if ( !$userdata['session_logged_in'] )

it didn't show that line according to this mod. I was wondering if it should be there or not.

GByte
06-11-2004, 02:47 PM
that should be below the first bit of code you need to edit - as below....

----------------------------------
ob_start();
function replace_for_mod_rewrite(&$s) {
$urlin = array(
"'(?<!/)viewforum.php\?f=([0-9]*)&topicdays=([0-9]*)&start=([0-9]*)'",
"'(?<!/)viewforum.php\?f=([0-9]*)&mark=topics'",
"'(?<!/)viewforum.php\?f=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&view=previous'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&view=next'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&postdays=([0-9]*)&postorder=([a-zA-Z]*) &start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&start=([0-9]*)&postdays=([0-9]*)&postorder=([a-zA-Z]*)&highlight=([a-zA-Z0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)'",
"'(?<!/)viewtopic.php&p=([0-9]*)'",
"'(?<!/)viewtopic.php\?p=([0-9]*)'",
);

$urlout = array(
"viewforum\\1-\\2-\\3.html",
"forum\\1.html",
"forum\\1.html",
"ptopic\\1.html",
"ntopic\\1.html",
"ftopic\\1-\\2-\\3-\\4.html",
"ftopic\\1.html",
"ftopic\\1-\\2.html",
"ftopic\\1.html",
"sutra\\1.html",
"sutra\\1.html",
);

$s = preg_replace($urlin, $urlout, $s);

return $s;
}

[COLOR=DarkOrange]if ( !$userdata['session_logged_in'] )
{[/COLOR]

Wallboy
06-11-2004, 02:53 PM
Well I got one before and after like this:

//
// Generate logged in/logged out status
//
if ( !$userdata['session_logged_in'] )
{
ob_start();
function replace_for_mod_rewrite(&$s) {
$urlin = array(
"'(?<!/)viewforum.php\?f=([0-9]*)&topicdays=([0-9]*)&start=([0-9]*)'",
"'(?<!/)viewforum.php\?f=([0-9]*)&mark=topics'",
"'(?<!/)viewforum.php\?f=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&view=previous'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&view=next'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&postdays=([0-9]*)&postorder=([a-zA-Z]*) &start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&start=([0-9]*)&postdays=([0-9]*)&postorder=([a-zA-Z]*)&highlight=([a-zA-Z0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)'",
"'(?<!/)viewtopic.php&p=([0-9]*)'",
"'(?<!/)viewtopic.php\?p=([0-9]*)'",
);

$urlout = array(
"viewforum\\1-\\2-\\3.html",
"forum\\1.html",
"forum\\1.html",
"ptopic\\1.html",
"ntopic\\1.html",
"ftopic\\1-\\2-\\3-\\4.html",
"ftopic\\1.html",
"ftopic\\1-\\2.html",
"ftopic\\1.html",
"sutra\\1.html",
"sutra\\1.html",
);

$s = preg_replace($urlin, $urlout, $s);

return $s;
}
}

if ( $userdata['session_logged_in'] )
{

Should I remove the first one?

GByte
06-11-2004, 02:59 PM
ok - I see - remove the first if statement and also the seconed ( } ) - both I have highlighted in RED...

//
// Generate logged in/logged out status
//
[COLOR=Red]if ( !$userdata['session_logged_in'] )
{ [/COLOR]
ob_start();
function replace_for_mod_rewrite(&$s) {
$urlin = array(
"'(?<!/)viewforum.php\?f=([0-9]*)&topicdays=([0-9]*)&start=([0-9]*)'",
"'(?<!/)viewforum.php\?f=([0-9]*)&mark=topics'",
"'(?<!/)viewforum.php\?f=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&view=previous'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&view=next'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&postdays=([0-9]*)&postorder=([a-zA-Z]*) &start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&start=([0-9]*)&postdays=([0-9]*)&postorder=([a-zA-Z]*)&highlight=([a-zA-Z0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)'",
"'(?<!/)viewtopic.php&p=([0-9]*)'",
"'(?<!/)viewtopic.php\?p=([0-9]*)'",
);

$urlout = array(
"viewforum\\1-\\2-\\3.html",
"forum\\1.html",
"forum\\1.html",
"ptopic\\1.html",
"ntopic\\1.html",
"ftopic\\1-\\2-\\3-\\4.html",
"ftopic\\1.html",
"ftopic\\1-\\2.html",
"ftopic\\1.html",
"sutra\\1.html",
"sutra\\1.html",
);

$s = preg_replace($urlin, $urlout, $s);

return $s;
}
[COLOR=Red]} <---THIS ALSO[/COLOR]

if ( $userdata['session_logged_in'] )
{

Try that and let me know ;)

Wallboy
06-11-2004, 03:05 PM
Ahhh there we go. Everything seems to be working 100% now. I can't thank you enough. Thank you GByte.

GByte
06-11-2004, 03:08 PM
no problem at all - I knew we'd get there in the end :D

Now google will have no probs crawling your forums - good luck with them ;)

Pyrrhonist
06-11-2004, 09:52 PM
Thanks GByte,

I've kinda neglected this thread since I wrote it, and I'm glad that someone else has been able to come in and pick up where I finished off.

GByte
06-12-2004, 02:14 AM
s'ok glad to be of help, It was only a little while ago I modded my forum so its still fresh in my mind ;)

Tayethin
06-14-2004, 03:50 PM
Has anyone seen this error?

Warning: Delimiter must not be alphanumeric or backslash in /home/viart1/public_html/forum/includes/sessions.php on line 374

Warning: Delimiter must not be alphanumeric or backslash in /home/viart1/public_html/forum/includes/sessions.php on line 374

Warning: Delimiter must not be alphanumeric or backslash in /home/viart1/public_html/forum/includes/sessions.php on line 374

Warning: Cannot modify header information - headers already sent by (output started at /home/viart1/public_html/forum/includes/sessions.php:374) in /home/viart1/public_html/forum/includes/page_header.php on line 507

Warning: Cannot modify header information - headers already sent by (output started at /home/viart1/public_html/forum/includes/sessions.php:374) in /home/viart1/public_html/forum/includes/page_header.php on line 509

Warning: Cannot modify header information - headers already sent by (output started at /home/viart1/public_html/forum/includes/sessions.php:374) in /home/viart1/public_html/forum/includes/page_header.php on line 510


I did everything step by step on another forum and it worked just fine, but this on is on a different host, I did the .htaccess file, and made sure that mod_rewrite was installed using the test.php page and when I go to the site.com/forum it give this error and then shows the board underneath.

If I hit refresh the site loads fine, but then when I go to login it gives the same error again, so clearly it's not working. Any help would be seriously appreciated! Thanks.

GByte
06-14-2004, 04:07 PM
I take it that its the first mod posted by seo bob you are having trouble with. He did mention that he had some trouble with that.

Have you also used the second mod for url re_writing - is that working? - can you post your URL?

Tayethin
06-14-2004, 04:11 PM
Hi Gbyte I haven't tried the second one, I have done the make it searchable section, but I'm not sure where to start for deleting the content from the append_sid wouldn't really know where to start, my urls is www.pennystockpile.com/forum thanks for your help.

GByte
06-14-2004, 04:25 PM
This is just for the first post by seo bob for the sessions.php

ok - firstly undo what you have already done - I am using a mod on my forums (in sig) that removes the session id's for spiders - It also removes id's for anonymous users, i.e. people who are not logged in. I have had no problems with google, yahoo and msn spidering my forums using this.

#
#-----[ OPEN ]------------------------------------------
#
includes/sessions.php

#
#-----[ FIND ]------------------------------------------
#
$SID = 'sid=' . $session_id;

#
#-----[ REPLACE WITH ]------------------------------------------
#
if ( $userdata['session_user_id'] != ANONYMOUS ){
$SID = 'sid=' . $session_id;
} else {
$SID = '';
}

You probably know but this will remove those dirty looking urls which spiders hate - /forum/forum7.html&sid=23f2b9b0b8c891b2c739042e08c2d66b

Give that a go and let me know.

doubleclick
06-14-2004, 05:43 PM
I'm guessing that you chose vbulletin because it is the search engine friendliest forum software.

Are you using the standard install, or did you tweak things somehow?

And if you tweaked, are you sharing?

GByte
06-14-2004, 05:47 PM
Hi Doubleclick

Is that question directed at me? because I am using phpbb which does take more work to make it search engine friendly. I think vbulletin is SE friendly right out of the box, but I cant say for sure as I have never used it.

doubleclick
06-14-2004, 06:12 PM
Hi GByte-

Actually, there was a side converstation about vbulletin and google earlier in this thread with SEO Bob, Commando, and others. I kept searching this site for a more relevant thread, but this one keeps popping up in the search.

Sorry to add noise to this thread.

GByte
06-14-2004, 06:27 PM
No probs I should have checked - its getting late :nap: so time to bed me thinks

welcome to the forum :D

Tayethin
06-14-2004, 07:06 PM
So wicked, thanks Gbyte it seems to be working just fine now, I get this with the spider simulator that I use:

index.php
faq.php
search.php
memberlist.php
groupcp.php
profile.php?mode=register
profile.php?mode=editprofile
privmsg.php?folder=inbox
login.php
index.php
search.php?search_id=unanswered
index.php?c=3
viewforum.php?f=4
profile.php?mode=viewprofile&u=2
viewtopic.php?p=3#3
viewforum.php?f=7
profile.php?mode=viewprofile&u=13
viewtopic.php?p=57#57
index.php?c=1
viewforum.php?f=6
profile.php?mode=viewprofile&u=2
viewtopic.php?p=62#62
viewforum.php?f=1
viewtopic.php?p=52#52
viewforum.php?f=2
profile.php?mode=viewprofile&u=10
viewtopic.php?p=15#15
index.php?c=2
viewforum.php?f=3
profile.php?mode=viewprofile&u=6
viewtopic.php?p=44#44
viewforum.php?f=5
profile.php?mode=viewprofile&u=2
viewtopic.php?p=4#4
index.php?mark=forums
viewonline.php
profile.php?mode=viewprofile&u=16
http://www.phpbb.com/

They look totall different then the last time I ran it, it kept saying sid=a;lksdjf;alksjdf after each link now it's clean, thanks soooo much

GByte
06-15-2004, 01:37 AM
kool - now all you have to do is tackle the second mod that seo bob posted.

the one that starts with "Ok. Now, to make the threads themselves searchable, we use mod_rewrite...."

That will flatten the urls so they are even more search engine friendly. Good luck ;)

Tayethin
06-15-2004, 06:50 AM
Okay the whole thing is done now and seems to be working just fine still, I think the spider sees the links just the same:

index.php
faq.php
search.php
memberlist.php
groupcp.php
profile.php?mode=register
profile.php?mode=editprofile
privmsg.php?folder=inbox
login.php
index.php
search.php?search_id=unanswered
index.php?c=3
forum4.html
profile.php?mode=viewprofile&u=2
sutra3.html#3
forum7.html
profile.php?mode=viewprofile&u=13
sutra57.html#57
index.php?c=1
forum6.html
profile.php?mode=viewprofile&u=2
sutra62.html#62
forum1.html
sutra52.html#52
forum2.html
profile.php?mode=viewprofile&u=10
sutra15.html#15
index.php?c=2
forum3.html
profile.php?mode=viewprofile&u=6
sutra44.html#44
forum5.html
profile.php?mode=viewprofile&u=2
sutra4.html#4
index.php?mark=forums
viewonline.php
profile.php?mode=viewprofile&u=16
http://www.phpbb.com/


Anyway hopefully this will be working, should be able to see googlebot coming through in the next couple of days! Thanks again for your help!

GByte
06-15-2004, 08:01 AM
Yeh all looks ok to me ;)

That mod only makes the forum pages spiderable (forum5.html) and the posts (ftopic20.html) and they all look good. The profiles etc (profile.php?mode=viewprofile&u=2) just stay the same.

Tayethin
06-15-2004, 08:28 AM
Great thanks so much Gbyte!!

Tayethin
06-25-2004, 05:09 PM
Hey does anyone know how to get rid of the "view Topic" and "View Forum" in the titles? I've found the page overall_header.tpl and change them from

<title>{SITENAME} :: {PAGE_TITLE}</title>

to:

<title>{PAGE_TITLE} :: {SITENAME}</title>

Which is great, I moved the page_title up one but it still says "view topic" and "view forum" at the very beggining of the title which is not what I want the search engines to see first. Any thoughts on this?

Here is how my title reads right now:

View topic - page title :: Penny Stock Pile

The only part I want to remove right now to make it perfect is the view topic at the beggining.

GByte
06-26-2004, 05:36 AM
Hi Tayethin

You can download a mod for that here http://www.phpbbhacks.com/viewhack.php?id=3060 - I had been looking for that myself for a while and have only just found

Works well and nice and easy to do ;)

Tayethin
06-26-2004, 06:51 AM
I actually just figured out how to do it last night, in the veiwtopic.php file you just have to find to do ctrl f and find view_topic, change it to no_topic and it gets rid of the view topic in the title, I hope I didn't mess with anything else doing this but hey... I guess I'll have to wait and see. I think I'll try your download on my next forum though. Thanks very much for the info!!

Rich@vtws
06-26-2004, 09:50 AM
Hello all...Ok so I'm having an anurism now :eyes: After reading al the wonderful posts I decided to create a clients only forum on our site. Forum is completely screwy and I can't get into the admin panel. forum site (http://www.vtws.com/realestateforum/)
First thing..In the control panel and when I spider the forum I get the following error:
Warning: Delimiter must not be alphanumeric or backslash in /home/vtwscom/public_html/realestateforum/includes/sessions.php on line 374 This repeats a bunch of times exactly the same message

Also can't connect to the server after the htaccess mod. Tried it with and without what I assumed were notes at the top and no difference. Connects fine when I put the backup copy back in so I'm missing something here.
Can anyone help me out 8-|

Here's what my htacces file looks like:

# -FrontPage-

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*


order deny,allow
deny from all
allow from all


order deny,allow
deny from all

AuthName www.vtws.com
AuthUserFile /home/vtwscom/public_html/_vti_pvt/service.pwd
AuthGroupFile /home/vtwscom/public_html/_vti_pvt/service.grp

# .htaccess. Add the new code at the bottom of the .htaccess file.
# Do NOT overwrite file without backing up.

RewriteEngine On

RewriteRule ^forums.* index.php
RewriteRule ^forum([0-9]*).* viewforum.php?f=$1&mark=topic
RewriteRule ^viewforum([0-9]*)-([0-9]*)-([0-9]*).* viewforum.php?f=$1&topicdays=$2&start=$3
RewriteRule ^forum([0-9]*).* viewforum.php?f=$1
RewriteRule ^ptopic([0-9]*).* viewtopic.php?t=$1&view=previous
RewriteRule ^ntopic([0-9]*).* viewtopic.php?t=$1&view=next
RewriteRule ^ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4
RewriteRule ^ftopic([0-9]*)-([0-9]*).* viewtopic.php?t=$1&start=$2
RewriteRule ^ftopic([0-9]*).* viewtopic.php?t=$1
RewriteRule ^ftopic([0-9]*).html viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5
RewriteRule ^sutra([0-9]*).* viewtopic.php?p=$1

Here's the affected part's of my page_header.php file

//
// Generate logged in/logged out status
//

ob_start();function replace_for_mod_rewrite(&$s) {
$urlin = array(
"'(?= ".( time() - 300 ) . "
$user_forum_sql
ORDER BY u.username ASC, s.session_ip ASC";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $sql);
}

$userlist_ary = array();
$userlist_visible = array();

$prev_user_id = 0;
$prev_user_ip = '';

while( $row = $db->sql_fetchrow($result) )

Here's the page_tail.php file:
set_filenames(array(
'overall_footer' => ( empty($gen_simple_header) ) ? 'overall_footer.tpl' : 'simple_footer.tpl')
);

$template->assign_vars(array(
'PHPBB_VERSION' => '2' . $board_config['version'],
'TRANSLATION_INFO' => ( isset($lang['TRANSLATION_INFO']) ) ? $lang['TRANSLATION_INFO'] : '',
'ADMIN_LINK' => $admin_link)
);

$template->pparse('overall_footer');

//
// Close our DB connection.
//
$db->sql_close();$contents = ob_get_contents();
ob_end_clean();
echo replace_for_mod_rewrite($contents);
global $dbg_starttime;

//
// Compress buffered output if required and send to browser
//
if ( $do_gzip_compress )
{
//
// Borrowed from php.net!
//
$gzip_contents = ob_get_contents();
ob_end_clean();

$gzip_size = strlen($gzip_contents);
$gzip_crc = crc32($gzip_contents);

$gzip_contents = gzcompress($gzip_contents, 9);
$gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4);

echo "\x1f\x8b\x08\x00\x00\x00\x00\x00";
echo $gzip_contents;
echo pack('V', $gzip_crc);
echo pack('V', $gzip_size);
}

exit;

?>

complainer
06-26-2004, 02:29 PM
[QUOTE=GByte]
You can download a mod for that here http://www.phpbbhacks.com/viewhack.php?id=3060 - I had been looking for that myself for a while and have only just found

Works well and nice and easy to do ;)[/QUOTE]
Excellent. I had been looking for something like this. This mod was incredibly easy to do. I followed its instructions for viewforum.php and viewtopic.php. Then I went ahead and made a few other changes that I like, and I'll include them here since I've never seen them written down:

in index.php, I replaced the following line:


$page_title = $lang['Index'];

with


$page_title = 'My Custom Text';

in /templates/subSilver/overall_header.tpl, I replaced the following line:


<title>{SITENAME} :: {PAGE_TITLE}</title>

with


<title>{PAGE_TITLE} :: A Keyword I Like</title>

I made the identical change to /templates/subSilver/simple_header.tpl

The reason I made these changes is that the actual {SITENAME} that I use for my forum is long. and I don't want it to appear in the title of the pages. This allows me to use the long {SITENAME} (which appears in the body of every page) as well as an abbreviated two-word phrase to appear on the actual page titles. I also prefer it with the {PAGE_TITLE} first, because this is unique for each page.

complainer
06-29-2004, 04:16 PM
OK,
The problem I'm having is that Google is still lumping all of my forum pages as essentially duplicate content. The reason I think this is when I do site:domain.com I get "In order to show you the most relevant results, we have omitted some entries very similar to the xx already displayed..." About 100 forum pages are hiding in there. I know nobody does real searches that way, but I don't like google thinking all my pages are "very similar." Looking at my pages, I notice that the css code consumes about 70% of the page, and it is all at the beginning. I decided to move it to an external file (a recommendation phpbb actually makes, but they suggest it to save bandwith). Since the css uses variabes, here's how I moved it into an external file:

1. Get the forum looking the way you want. This modification will remove your ability to change the look of the template through the control panel.

2. Go to a page in the forum and view "source."

3. Copy everything between the <style ...> and </style> tags.

4. Paste the info into a new file, save it as something like forum.css in the home directory of the site.

5. Open /templates/subSilver/overall_header.tpl

6. Delete everything from <style...> through </style>

7. Add this line:

<link rel="stylesheet" type="text/css" media="screen" href="http://www.domain.com/forum.css"> where the <style> tags were.

8. Do steps 5 through 7 for simple_header.tpl

9. Copy the new files to your forum.

This worked for me, your results may vary. Do it at your own risk and backup before you try it. I do not know if it will solve my problem, but it will definitely save bandwidth.

Thanks for listening....

GByte
06-29-2004, 04:25 PM
Complainer it is a very good idea to put all the css in to a css file 1) for bandwidth and 2) its junk that clutters up the whole page as far as content goes 3) you only have to edit one file when changing any of the styles

With the omitted results when you search for site:domain.com its nothing to worry about - try it with any site and you get the same message after so many results. Its not that google beleives your pages are "very similar" its just that google has already displayed x-amount of pages from one site so theres no need to display more

even site:www.google.com gets the same treatment with this message after 759 results

In order to show you the most relevant results, we have omitted some entries very similar to the 759 already displayed. If you like, you can repeat the search with the omitted results included.

Hope that puts your mind at rest ;)

jlknauff
07-19-2004, 10:49 AM
What would you charge to make a phpBB SE friendly? I'm not too crazy about digging into the guts of mine.

Pyrrhonist
07-20-2004, 12:57 AM
Hi jlknauff,

We've actually just launched a similar package for vBulletin, but I'm sure we could come up with something similar for phpBB.

http://www.mod-rewrite.com/forum/thread23.html

SerpCharger
08-14-2004, 05:04 PM
Bug report..

Hi everyone I just wanted to add one thing about the original install of the Make your phpbb spiderable. I found a potential bug and I can't quite seem to get a hold of why it's doing this. After making the forum spiderable, and I've got a few hundered pages spidered in google I've noticed that once you have over 100 pages and the forum builds the next page 1 2 link at the top of the forum, if you click next or the numbers it doesn't take you anywhere, it just leaves you at the same spot.

Any thoughts on this? Here is the exact code that I used.

PHP Code:

#
#-----[ OPEN ]------------------------------------------
#
includes/sessions.php

#
#-----[ FIND ]------------------------------------------
#
$SID = 'sid=' . $session_id;

#
#-----[ REPLACE WITH ]------------------------------------------
#
if ( $userdata['session_user_id'] != ANONYMOUS ){
$SID = 'sid=' . $session_id;
} else {
$SID = '';
}

Save and close sessions.php and upload the file.
--------------------------------




Next Step


Find

//
// Generate logged in/logged out status
//

if ( $userdata['session_logged_in'] )
{




change to this:



//
// Generate logged in/logged out status
//

ob_start();
function replace_for_mod_rewrite(&$s) {
$urlin = array(
"'(?<!/)viewforum.php\?f=([0-9]*)&topicdays=([0-9]*)&start=([0-9]*)'",
"'(?<!/)viewforum.php\?f=([0-9]*)&mark=topics'",
"'(?<!/)viewforum.php\?f=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&view=previous'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&view=next'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&postdays=([0-9]*)&postorder=([a-zA-Z]*) &start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&start=([0-9]*)&postdays=([0-9]*)&postorder=([a-zA-Z]*)&highlight=([a-zA-Z0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)'",
"'(?<!/)viewtopic.php&p=([0-9]*)'",
"'(?<!/)viewtopic.php\?p=([0-9]*)'",
);

$urlout = array(
"viewforum\\1-\\2-\\3.html",
"forum\\1.html",
"forum\\1.html",
"ptopic\\1.html",
"ntopic\\1.html",
"ftopic\\1-\\2-\\3-\\4.html",
"ftopic\\1.html",
"ftopic\\1-\\2.html",
"ftopic\\1.html",
"sutra\\1.html",
"sutra\\1.html",
);

$s = preg_replace($urlin, $urlout, $s);

return $s;
}
if ( $userdata['session_logged_in'] )
{




next step




In /includes/page_tail.php, after

Code:
$db->sql_close();


Add this:

Code:
$contents = ob_get_contents();
ob_end_clean();
echo replace_for_mod_rewrite($contents);
global $dbg_starttime;

In the same file, (/includes/page_tail.php) after:

Code:
ob_end_clean();

Add this:

Code:
echo replace_for_mod_rewrite($contents);
global $dbg_starttime;


Then edit the .htaccess

add this:


RewriteEngine On

RewriteRule ^forums.* index.php
RewriteRule ^forum([0-9]*).* viewforum.php?f=$1&mark=topic
RewriteRule ^viewforum([0-9]*)-([0-9]*)-([0-9]*).* viewforum.php?f=$1&topicdays=$2&start=$3
RewriteRule ^forum([0-9]*).* viewforum.php?f=$1
RewriteRule ^ptopic([0-9]*).* viewtopic.php?t=$1&view=previous
RewriteRule ^ntopic([0-9]*).* viewtopic.php?t=$1&view=next
RewriteRule ^ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4
RewriteRule ^ftopic([0-9]*)-([0-9]*).* viewtopic.php?t=$1&start=$2
RewriteRule ^ftopic([0-9]*).* viewtopic.php?t=$1
RewriteRule ^ftopic([0-9]*).html viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5
RewriteRule ^sutra([0-9]*).* viewtopic.php?p=$1

SerpCharger
08-14-2004, 05:12 PM
Something else I've just found is a mod that basically recognizes google and makes it so that the forum doesn't use session ID's for google only. It's in short cloaking, but your're showing google the exact same content, it's not like you're fully cloaking and sending google to another page. It's a great idea and would work just fine, but, if Google comes up with a way to detect real cloakers, and I hope they do, then this might trigger a cloaking filter..... anyway here's the code:


#################################################################
## MOD Title: GoogleSingleSession (Add-On to enhance-google-indexing )
## MOD Author: - R. U. Serious
## MOD Description: This MOD will give all 'guests' where the useragent
## contains 'Googlebot' one session (static session_id)
## Hence it will only appear as a single guest.
##
## MOD Version: 0.9
##
## Installation Level: (easy)
## Installation Time: 5 Minutes
## Files To Edit: includes/sessions.php
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/
##############################################################
## Author Notes: This is only an Add-ON. You will not notice anything with only this mod
## installed. Please consider installing another MOD to enhance Google-indexing
## http://www.phpbb.com/phpBB/viewtopic.php?p=193214#193214
## ( enhance-google-indexing )
##############################################################

#-----[ OPEN ]------------------------------------------
#
includes/sessions.php

#
#-----[ FIND ]------------------------------------------
#
$session_id = md5(uniqid($user_ip));

#
#-----[ REPLACE WITH ]------------------------------------------
#
# Note: d8ef2eab is one of the googlecrawlbots ips
#
//$session_id = md5(uniqid($user_ip));
global $HTTP_SERVER_VARS;
$session_id = ( !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ? md5(uniqid($user_ip)) : md5(d8ef2eab);


#
#-----[ FIND ]------------------------------------------
#
else
{
$sessiondata = '';
$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
$sessionmethod = SESSION_METHOD_GET;
}


#
#-----[ AFTER ADD ]------------------------------------------
#
global $HTTP_SERVER_VARS;
if ( empty($session_id) && strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') )
{
$sessiondata = '';
$session_id = md5(d8ef2eab);
$sessionmethod = SESSION_METHOD_GET;
}


#
#-----[ FIND ]------------------------------------------
#

if ( $ip_check_s == $ip_check_u )

#
#-----[ REPLACE WITH ]------------------------------------------
#

// if ( $ip_check_s == $ip_check_u )
if (( $ip_check_s == $ip_check_u ) || ($session_id == md5(d8ef2eab)&&(strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot'))))

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM


Here's an even faster fix, but I'm still really concerned about the cloaking issue, it would suck to get banned but this fixes all spiderability problems anyway


##############################################################
## MOD Title: enhance-google-indexing
## MOD Author: Showscout & R. U. Serious
## MOD Description: If the User_agent includes the string 'Googlebot', then no session_ids are appended to links, which will (hopefully) allow google to index more than just your index-site.
## MOD Version: 0.9.1
##
## Installation Level: easy
## Installation Time: 2 Minutes
## Files To Edit: includes/sessions.php
## Included Files: n/a
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/
##############################################################
## Author Notes: There may be issues with register globals on newer
## PHP version. If you know for sure and also how to fix it post in
## this thread: http://www.phpbb.com/phpBB/viewtopic.php?t=32328
##
## Obviously, if someone thinks it's funny to surf around with a
## user_agent containing Googlebot and at the same time does not
## allow cookies, he will loose his session/login on every pageview.
## Should he complain to you, tell him to eat your shorts.
##
## If you want to add further crawlers look at the appropiate line and
## feel free to add part of the user_agent which should be _unique_
## unique to that, so a user is never confused with a bot.
##
##############################################################
## Version History: 0.9.0 initial release, only googlebot
## 0.9.1 added inktomi (MSN-search/crawler-bot)
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#-----[ OPEN ]------------------------------------------
includes/sessions.php

#-----[ FIND ]------------------------------------------
global $SID;

if ( !empty($SID) && !eregi('sid=', $url) )

#-----[ REPLACE WITH ]------------------------------------------
global $SID, $HTTP_SERVER_VARS;

if ( !empty($SID) && !eregi('sid=', $url) && !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') && !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'slurp@inktomi.com;'))

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM

cianuro
09-06-2004, 07:47 PM
Great thread. You should make this into a full fledged article.

jlknauff
09-06-2004, 07:50 PM
cianuro, you can only have 2 links in your sig-you should fix that 8-|

cianuro
09-06-2004, 07:54 PM
My apologies. Usually I am the one that gives out to people for not reading the rules!

Waddle
11-26-2004, 05:26 PM
Hi,

I have followed the instructions pretty closely but I keep getting the error message at the bottom of the page (where ther footer would be)

Call to undefined function: replace_for_mod_rewrite() in /home/xxx/public_html/bbs/includes/page_tail.php on line 51

hello
11-28-2004, 05:31 AM
vBulletin and phpBB,which more friendly to search Engineer

seffi
01-30-2005, 09:12 AM
I have implemented the "able2know" mod which is basicly the same as the one at the begining of the thread, but it didnt work. i have manually tested the URIs htaccess is supposed to take care of and they come out fine. so something must be going wrong in the page_header. i have also tried deleting the lines as advised on page4 of this thread (marked in red)
(http://www.seo-guy.com/forum/showthread.php?t=119&page=4&pp=10)
below are my htaccess and page_header:

htaccess

RewriteEngine on
RewriteRule ^forums.* /index.php [L,NC]
RewriteRule ^post-([0-9]*).html&highlight=([a-zA-Z0-9]*) viewtopic.php?p=$1&highlight=$2 [L,NC]
RewriteRule ^post-([0-9]*).* viewtopic.php?p=$1 [L,NC]
RewriteRule ^view-poll([0-9]*)-([0-9]*)-([a-zA-Z]*).* viewtopic.php?t=$1&postdays=$2&postorder=$3&vote=viewresult [L,NC]
RewriteRule ^about([0-9]*).html&highlight=([a-zA-Z0-9]*) viewtopic.php?t=$1&highlight=$2 [L,NC]
RewriteRule ^about([0-9]*).html&view=newest viewtopic.php?t=$1&view=newest [L,NC]
RewriteRule ^about([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4 [L,NC]
RewriteRule ^about([0-9]*)-([0-9]*).* viewtopic.php?t=$1&start=$2 [L,NC]
RewriteRule ^about([0-9]*).* viewtopic.php?t=$1 [L,NC]
RewriteRule ^about([0-9]*).html viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5 [L,NC]
RewriteRule ^mark-forum([0-9]*).html* viewforum.php?f=$1&mark=topics [L,NC]
RewriteRule ^updates-topic([0-9]*).html* viewtopic.php?t=$1&watch=topic [L,NC]
RewriteRule ^stop-updates-topic([0-9]*).html* viewtopic.php?t=$1&unwatch=topic [L,NC]
RewriteRule ^forum-([0-9]*).html viewforum.php?f=$1 [L,NC]
RewriteRule ^forum-([0-9]*).* viewforum.php?f=$1 [L,NC]
RewriteRule ^topic-([0-9]*)-([0-9]*)-([0-9]*).* viewforum.php?f=$1&topicdays=$2&start=$3 [L,NC]
RewriteRule ^ptopic([0-9]*).* viewtopic.php?t=$1&view=previous [L,NC]
RewriteRule ^ntopic([0-9]*).* viewtopic.php?t=$1&view=next [L,NC]

page_header

<?php
/***************************************************************************
* page_header.php
* -------------------
* begin : Saturday, Feb 13, 2001
* copyright : (C) 2001 The phpBB Group
* email : support@phpbb.com
*
* $Id: page_header.php,v 1.106.2.23 2004/07/11 16:46:19 acydburn Exp $
*
*
***************************************************************************/

/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/

if ( !defined('IN_PHPBB') )
{
die("Hacking attempt");
}

define('HEADER_INC', TRUE);

//
// gzip_compression
//
$do_gzip_compress = FALSE;
if ( $board_config['gzip_compress'] )
{
$phpver = phpversion();

$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;

if ( $phpver >= '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) )
{
if ( extension_loaded('zlib') )
{
ob_start('ob_gzhandler');
}
}
else if ( $phpver > '4.0' )
{
if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') )
{
if ( extension_loaded('zlib') )
{
$do_gzip_compress = TRUE;
ob_start();
ob_implicit_flush(0);

header('Content-Encoding: gzip');
}
}
}
}

//
// Parse and show the overall header.
//
$template->set_filenames(array(
'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl')
);

//
// Generate logged in/logged out status
//

if ( !$userdata['session_logged_in'] )
{
ob_start();
function replace_for_mod_rewrite(&$s)
{
$urlin =
array(
"'(?<!/)viewforum.php\?f=([0-9]*)&amp;topicdays=([0-9]*)&amp;start=([0-9]*)'",
"'(?<!/)viewforum.php\?f=([0-9]*)&amp;mark=topics'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;watch=topic*'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;unwatch=topic*'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;highlight=*'",
"'(?<!/)viewforum.php\?f=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;view=previous'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;view=next'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;postdays=([0-9]*)&amp;postorder=([a-zA-Z]*)&amp;vote=viewresult'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;postdays=([0-9]*)&amp;postorder=([a-zA-Z]*)&amp;start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;start=([0-9]*)&amp;postdays=([0-9]*)&amp;postorder=([a-zA-Z]*)&amp;highlight=([a-zA-Z0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)'",
"'(?<!/)viewtopic.php&amp;p=([0-9]*)'",
"'(?<!/)viewtopic.php\?p=([0-9]*)'",
);
$urlout = array(
"topic-\\1-\\2-\\3.html",
"mark-forum\\1.html",
"updates-topic\\1.html",
"stop-updates-topic\\1.html",
"about\\1.html&amp;highlight=\\2",
"forum-\\1.html",
"ptopic\\1.html",
"ntopic\\1.html",
"view-poll\\1-\\2-\\3.html",
"about\\1-\\2-\\3-\\4.html",
"about\\1.html",
"about\\1-\\2.html",
"about\\1.html",
"post-\\1.html",
"post-\\1.html",
);
$s = preg_replace($urlin, $urlout, $s);
return $s;
}
}
if ( $userdata['session_logged_in'] )
{
$u_login_logout = 'login.'.$phpEx.'?logout=true&amp;sid=' . $userdata['session_id'];
$l_login_logout = $lang['Logout'] . ' [ ' . $userdata['username'] . ' ]';
}
else
{
$u_login_logout = 'login.'.$phpEx;
$l_login_logout = $lang['Login'];
}


$s_last_visit = ( $userdata['session_logged_in'] ) ? create_date($board_config['default_dateformat'], $userdata['user_lastvisit'], $board_config['board_timezone']) : '';

//
// Get basic (usernames + totals) online
// situation
//
$logged_visible_online = 0;
$logged_hidden_online = 0;
$guests_online = 0;
$online_userlist = '';
$l_online_users = '';

if (defined('SHOW_ONLINE'))
{

$user_forum_sql = ( !empty($forum_id) ) ? "AND s.session_page = " . intval($forum_id) : '';
$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip
FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s
WHERE u.user_id = s.session_user_id
AND s.session_time >= ".( time() - 1800 ) . "
$user_forum_sql
ORDER BY u.username ASC, s.session_ip ASC";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $sql);
}

$userlist_ary = array();
$userlist_visible = array();

$prev_user_id = 0;
$prev_user_ip = $prev_session_ip = '';

while( $row = $db->sql_fetchrow($result) )
{
// User is logged in and therefor not a guest
if ( $row['session_logged_in'] )
{
// Skip multiple sessions for one user
if ( $row['user_id'] != $prev_user_id )
{
$style_color = '';
if ( $row['user_level'] == ADMIN )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
}
else if ( $row['user_level'] == MOD )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
}

if ( $row['user_allow_viewonline'] )
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
$logged_visible_online++;
}
else
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
$logged_hidden_online++;
}

if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
{
$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
}
}

$prev_user_id = $row['user_id'];
}
else
{
// Skip multiple sessions for one user
if ( $row['session_ip'] != $prev_session_ip )
{
$guests_online++;
}
}

$prev_session_ip = $row['session_ip'];
}
$db->sql_freeresult($result);

if ( empty($online_userlist) )
{
$online_userlist = $lang['None'];
}
$online_userlist = ( ( isset($forum_id) ) ? $lang['Browsing_forum'] : $lang['Registered_users'] ) . ' ' . $online_userlist;

$total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online;

if ( $total_online_users > $board_config['record_online_users'])
{
$board_config['record_online_users'] = $total_online_users;
$board_config['record_online_date'] = time();

$sql = "UPDATE " . CONFIG_TABLE . "
SET config_value = '$total_online_users'
WHERE config_name = 'record_online_users'";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update online user record (nr of users)', '', __LINE__, __FILE__, $sql);
}

$sql = "UPDATE " . CONFIG_TABLE . "
SET config_value = '" . $board_config['record_online_date'] . "'
WHERE config_name = 'record_online_date'";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update online user record (date)', '', __LINE__, __FILE__, $sql);
}
}

if ( $total_online_users == 0 )
{
$l_t_user_s = $lang['Online_users_zero_total'];
}
else if ( $total_online_users == 1 )
{
$l_t_user_s = $lang['Online_user_total'];
}
else
{
$l_t_user_s = $lang['Online_users_total'];
}

if ( $logged_visible_online == 0 )
{
$l_r_user_s = $lang['Reg_users_zero_total'];
}
else if ( $logged_visible_online == 1 )
{
$l_r_user_s = $lang['Reg_user_total'];
}
else
{
$l_r_user_s = $lang['Reg_users_total'];
}

if ( $logged_hidden_online == 0 )
{
$l_h_user_s = $lang['Hidden_users_zero_total'];
}
else if ( $logged_hidden_online == 1 )
{
$l_h_user_s = $lang['Hidden_user_total'];
}
else
{
$l_h_user_s = $lang['Hidden_users_total'];
}

if ( $guests_online == 0 )
{
$l_g_user_s = $lang['Guest_users_zero_total'];
}
else if ( $guests_online == 1 )
{
$l_g_user_s = $lang['Guest_user_total'];
}
else
{
$l_g_user_s = $lang['Guest_users_total'];
}

$l_online_users = sprintf($l_t_user_s, $total_online_users);
$l_online_users .= sprintf($l_r_user_s, $logged_visible_online);
$l_online_users .= sprintf($l_h_user_s, $logged_hidden_online);
$l_online_users .= sprintf($l_g_user_s, $guests_online);
}

//
// Obtain number of new private messages
// if user is logged in
//
if ( ($userdata['session_logged_in']) && (empty($gen_simple_header)) )
{
if ( $userdata['user_new_privmsg'] )
{
$l_message_new = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['New_pm'] : $lang['New_pms'];
$l_privmsgs_text = sprintf($l_message_new, $userdata['user_new_privmsg']);

if ( $userdata['user_last_privmsg'] > $userdata['user_lastvisit'] )
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_last_privmsg = " . $userdata['user_lastvisit'] . "
WHERE user_id = " . $userdata['user_id'];
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update private message new/read time for user', '', __LINE__, __FILE__, $sql);
}

$s_privmsg_new = 1;
$icon_pm = $images['pm_new_msg'];
}
else
{
$s_privmsg_new = 0;
$icon_pm = $images['pm_new_msg'];
}
}
else
{
$l_privmsgs_text = $lang['No_new_pm'];

$s_privmsg_new = 0;
$icon_pm = $images['pm_no_new_msg'];
}

if ( $userdata['user_unread_privmsg'] )
{
$l_message_unread = ( $userdata['user_unread_privmsg'] == 1 ) ? $lang['Unread_pm'] : $lang['Unread_pms'];
$l_privmsgs_text_unread = sprintf($l_message_unread, $userdata['user_unread_privmsg']);
}
else
{
$l_privmsgs_text_unread = $lang['No_unread_pm'];
}
}
else
{
$icon_pm = $images['pm_no_new_msg'];
$l_privmsgs_text = $lang['Login_check_pm'];
$l_privmsgs_text_unread = '';
$s_privmsg_new = 0;
}

//
// Generate HTML required for Mozilla Navigation bar
//
if (!isset($nav_links))
{
$nav_links = array();
}

$nav_links_html = '';
$nav_link_proto = '<link rel="%s" href="%s" title="%s" />' . "\n";
while( list($nav_item, $nav_array) = @each($nav_links) )
{
if ( !empty($nav_array['url']) )
{
$nav_links_html .= sprintf($nav_link_proto, $nav_item, append_sid($nav_array['url']), $nav_array['title']);
}
else
{
// We have a nested array, used for items like <link rel='chapter'> that can occur more than once.
while( list(,$nested_array) = each($nav_array) )
{
$nav_links_html .= sprintf($nav_link_proto, $nav_item, $nested_array['url'], $nested_array['title']);
}
}
}

// Format Timezone. We are unable to use array_pop here, because of PHP3 compatibility
$l_timezone = explode('.', $board_config['board_timezone']);
$l_timezone = (count($l_timezone) > 1 && $l_timezone[count($l_timezone)-1] != 0) ? $lang[sprintf('%.1f', $board_config['board_timezone'])] : $lang[number_format($board_config['board_timezone'])];
//
// The following assigns all _common_ variables that may be used at any point
// in a template.
//
$template->assign_vars(array(
'SITENAME' => $board_config['sitename'],
'SITE_DESCRIPTION' => $board_config['site_desc'],
'PAGE_TITLE' => $page_title,
'LAST_VISIT_DATE' => sprintf($lang['You_last_visit'], $s_last_visit),
'CURRENT_TIME' => sprintf($lang['Current_time'], create_date($board_config['default_dateformat'], time(), $board_config['board_timezone'])),
'TOTAL_USERS_ONLINE' => $l_online_users,
'LOGGED_IN_USER_LIST' => $online_userlist,
'RECORD_USERS' => sprintf($lang['Record_online_users'], $board_config['record_online_users'], create_date($board_config['default_dateformat'], $board_config['record_online_date'], $board_config['board_timezone'])),
'PRIVATE_MESSAGE_INFO' => $l_privmsgs_text,
'PRIVATE_MESSAGE_INFO_UNREAD' => $l_privmsgs_text_unread,
'PRIVATE_MESSAGE_NEW_FLAG' => $s_privmsg_new,

'PRIVMSG_IMG' => $icon_pm,

'L_USERNAME' => $lang['Username'],
'L_PASSWORD' => $lang['Password'],
'L_LOGIN_LOGOUT' => $l_login_logout,
'L_LOGIN' => $lang['Login'],
'L_LOG_ME_IN' => $lang['Log_me_in'],
'L_AUTO_LOGIN' => $lang['Log_me_in'],
'L_INDEX' => sprintf($lang['Forum_Index'], $board_config['sitename']),
'L_REGISTER' => $lang['Register'],
'L_PROFILE' => $lang['Profile'],
'L_SEARCH' => $lang['Search'],
'L_PRIVATEMSGS' => $lang['Private_Messages'],
'L_WHO_IS_ONLINE' => $lang['Who_is_Online'],
'L_MEMBERLIST' => $lang['Memberlist'],
'L_FAQ' => $lang['FAQ'],
'L_USERGROUPS' => $lang['Usergroups'],
'L_SEARCH_NEW' => $lang['Search_new'],
'L_SEARCH_UNANSWERED' => $lang['Search_unanswered'],
'L_SEARCH_SELF' => $lang['Search_your_posts'],
'L_WHOSONLINE_ADMIN' => sprintf($lang['Admin_online_color'], '<span style="color:#' . $theme['fontcolor3'] . '">', '</span>'),
'L_WHOSONLINE_MOD' => sprintf($lang['Mod_online_color'], '<span style="color:#' . $theme['fontcolor2'] . '">', '</span>'),

'U_SEARCH_UNANSWERED' => append_sid('search.'.$phpEx.'?search_id=unanswered'),
'U_SEARCH_SELF' => append_sid('search.'.$phpEx.'?search_id=egosearch'),
'U_SEARCH_NEW' => append_sid('search.'.$phpEx.'?search_id=newposts'),
'U_INDEX' => append_sid('index.'.$phpEx),
'U_REGISTER' => append_sid('profile.'.$phpEx.'?mode=register'),
'U_PROFILE' => append_sid('profile.'.$phpEx.'?mode=editprofile'),
'U_PRIVATEMSGS' => append_sid('privmsg.'.$phpEx.'?folder=inbox'),
'U_PRIVATEMSGS_POPUP' => append_sid('privmsg.'.$phpEx.'?mode=newpm'),
'U_SEARCH' => append_sid('search.'.$phpEx),
'U_MEMBERLIST' => append_sid('memberlist.'.$phpEx),
'U_MODCP' => append_sid('modcp.'.$phpEx),
'U_FAQ' => append_sid('faq.'.$phpEx),
'U_VIEWONLINE' => append_sid('viewonline.'.$phpEx),
'U_LOGIN_LOGOUT' => append_sid($u_login_logout),
'U_GROUP_CP' => append_sid('groupcp.'.$phpEx),

'S_CONTENT_DIRECTION' => $lang['DIRECTION'],
'S_CONTENT_ENCODING' => $lang['ENCODING'],
'S_CONTENT_DIR_LEFT' => $lang['LEFT'],
'S_CONTENT_DIR_RIGHT' => $lang['RIGHT'],
'S_TIMEZONE' => sprintf($lang['All_times'], $l_timezone),
'S_LOGIN_ACTION' => append_sid('login.'.$phpEx),

'T_HEAD_STYLESHEET' => $theme['head_stylesheet'],
'T_BODY_BACKGROUND' => $theme['body_background'],
'T_BODY_BGCOLOR' => '#'.$theme['body_bgcolor'],
'T_BODY_TEXT' => '#'.$theme['body_text'],
'T_BODY_LINK' => '#'.$theme['body_link'],
'T_BODY_VLINK' => '#'.$theme['body_vlink'],
'T_BODY_ALINK' => '#'.$theme['body_alink'],
'T_BODY_HLINK' => '#'.$theme['body_hlink'],
'T_TR_COLOR1' => '#'.$theme['tr_color1'],
'T_TR_COLOR2' => '#'.$theme['tr_color2'],
'T_TR_COLOR3' => '#'.$theme['tr_color3'],
'T_TR_CLASS1' => $theme['tr_class1'],
'T_TR_CLASS2' => $theme['tr_class2'],
'T_TR_CLASS3' => $theme['tr_class3'],
'T_TH_COLOR1' => '#'.$theme['th_color1'],
'T_TH_COLOR2' => '#'.$theme['th_color2'],
'T_TH_COLOR3' => '#'.$theme['th_color3'],
'T_TH_CLASS1' => $theme['th_class1'],
'T_TH_CLASS2' => $theme['th_class2'],
'T_TH_CLASS3' => $theme['th_class3'],
'T_TD_COLOR1' => '#'.$theme['td_color1'],
'T_TD_COLOR2' => '#'.$theme['td_color2'],
'T_TD_COLOR3' => '#'.$theme['td_color3'],
'T_TD_CLASS1' => $theme['td_class1'],
'T_TD_CLASS2' => $theme['td_class2'],
'T_TD_CLASS3' => $theme['td_class3'],
'T_FONTFACE1' => $theme['fontface1'],
'T_FONTFACE2' => $theme['fontface2'],
'T_FONTFACE3' => $theme['fontface3'],
'T_FONTSIZE1' => $theme['fontsize1'],
'T_FONTSIZE2' => $theme['fontsize2'],
'T_FONTSIZE3' => $theme['fontsize3'],
'T_FONTCOLOR1' => '#'.$theme['fontcolor1'],
'T_FONTCOLOR2' => '#'.$theme['fontcolor2'],
'T_FONTCOLOR3' => '#'.$theme['fontcolor3'],
'T_SPAN_CLASS1' => $theme['span_class1'],
'T_SPAN_CLASS2' => $theme['span_class2'],
'T_SPAN_CLASS3' => $theme['span_class3'],

'NAV_LINKS' => $nav_links_html)
);

//
// Login box?
//
if ( !$userdata['session_logged_in'] )
{
$template->assign_block_vars('switch_user_logged_out', array());
}
else
{
$template->assign_block_vars('switch_user_logged_in', array());

if ( !empty($userdata['user_popup_pm']) )
{
$template->assign_block_vars('switch_enable_pm_popup', array());
}
}

// Add no-cache control for cookies if they are set
//$c_no_cache = (isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid']) || isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_data'])) ? 'no-cache="set-cookie", ' : '';

// Work around for "current" Apache 2 + PHP module which seems to not
// cope with private cache control setting
if (!empty($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache/2'))
{
header ('Cache-Control: no-cache, pre-check=0, post-check=0');
}
else
{
header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
}
header ('Expires: 0');
header ('Pragma: no-cache');

$template->pparse('overall_header');

?>

seffi
02-02-2005, 04:13 PM
no one??

BARACCUS
02-18-2005, 07:35 PM
I tried the Mod from this forum for search-engine-friendly PHPBB, and it works great, except for one thing:

I can't login or logout without getting a "Page cannot be displayed" error.

The forum is at http://www.cancun-discounts.com/boards/.

I can click around the various forums great, and all the .html pages show up just fine. I can post, etc. I just can't login or logout. :huh:

Can you help? This is the last thread I need to make everything work and actually get past this!

Thanks in advance!

PS Great Board!

bosstone
05-11-2005, 11:27 AM
Hello all
Been reading this forum and absorbing info for some time but this is my first post. I am running a php forum on my site. The site was just devloped and I am trying to SEO it myself. I did the very first thing recomended in this thread and finally got it to work with no errors by taking the later advice in page 3 I think. Now for the second part I am a bit scared I am going to destroy my forum beyond repair. I am running my site on windows servers so not sure if this would change how I have to edit the code. Is the first part going to make my forum spider and search engine friendly or do I need to take the plunge into the second part. If I do need to take the plunge can anyone give me step by step editing instrctions if I am running on windows server. May be a sumb question but I hope not. Also if you have any other recomendations after looking at my site on what I could do to increase its search engine status please give me any and all comments and suggestions. Thanks for all the info and for this great thread.

www.MyXV6600.com

CC