<no0ob alert> The only experience I have with mod_rewrite is to upload all the rules generated by wordpress or those by my ultra helpful friends :o </noob alert>

Here's what I want to do -

every request made for http://www.domain.com/forumdisplay.php?t=xyz and http://www.domain.com/showthread.php?t=xyz should be redirected to http://www.domain.com/forums/forumdisplay,php?t=xyz and http://www.domain.com/forums/showthread.php?t=xyz respectively!

:mrgreen: Can someone help me with the rules?

Thanks :)

Recommended Answers

All 3 Replies

Create an .htaccess file in your root directory and put the following:

Options +FollowSymLinks
RewriteEngine on
 
RewriteRule ^forumdisplay.php?f=([0-9]+)$ ./forums/forumdisplay.php?f=$1 [R=301, L]
RewriteRule ^showthread.php?t=([0-9]+)$ ./forums/showthread.php?t=$1 [R=301, L]

Let's examine the first rule. It says that when you see a URL in the form of forumdisplay.php?f=some number, redirect to ./forums/forumdisplay.php?f=X where X is whatever the number just happens to be. The R=301 part means to do a 301 Redirect Permanent on the URL, which basically means that the content has moved from the old location to the new location, so pass any Google PR, etc. to the new URL. The L part means (to the best of my knowledge) that if a URL qualifies for this rule, apply it and then stop parsing the .htaccess file. (i.e. don't continue following other rules, because the URL will not apply to multiple rules in this file).

Create an .htaccess file in your root directory and put the following:

Options +FollowSymLinks
RewriteEngine on
 
RewriteRule ^forumdisplay.php?f=([0-9]+)$ ./forums/forumdisplay.php?f=$1 [R=301, L]
RewriteRule ^showthread.php?t=([0-9]+)$ ./forums/showthread.php?t=$1 [R=301, L]

Let's examine the first rule. It says that when you see a URL in the form of forumdisplay.php?f=some number, redirect to ./forums/forumdisplay.php?f=X where X is whatever the number just happens to be. The R=301 part means to do a 301 Redirect Permanent on the URL, which basically means that the content has moved from the old location to the new location, so pass any Google PR, etc. to the new URL. The L part means (to the best of my knowledge) that if a URL qualifies for this rule, apply it and then stop parsing the .htaccess file. (i.e. don't continue following other rules, because the URL will not apply to multiple rules in this file).

Hi,

Ive been trying to adapt this rule for my site and having very little luck :(

Our URL stucture is;

/dir/?pid=example

We ideally want that rewrote into;

/dir/example

Any help or advice is appreciated.

Matt

What is the word on how effective this is as far google picking up on the url change and preserving the rewritten url with it's old status in the index?
I posted another question regarding how to accomplish a rewrite rule earlier today, hopfully some help will arrive for that, but this 301 thing would be great to be able to tidy up my indexed stuff - I was just going to slowly transition stuff out before....

*snip*
The R=301 part means to do a 301 Redirect Permanent on the URL, which basically means that the content has moved from the old location to the new location, so pass any Google PR, etc. to the new URL.
*snip*

.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.