Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
377 views
in Technique[技术] by (71.8m points)

seo - htaccess redirect vs php redirect

I have decided to change all my /dyanmic.php?UID=... pages to /static/Name-From-DB. I have read that the best way to do redirection, SEO wise, is to implement a 301 .htacess redirection:

(http://www.tamingthebeast.net)- The right way - a htaccess 301 Redirect: A 301 redirect is the most efficient and spider/visitor friendly strategy around for web sites that are hosted on servers running Apache.

However, since I have thousands of pages I need to use redirection for, it seems pretty inefficient to have thousands of entries in the .htacess file:

redirect 301 /dynamid.php?UID=1 http://www.domain.com/static/Name-From-DB
redirect 301 /dynamid.php?UID=2 http://www.domain.com/static/Another-Name-From-DB
and so on...

Therefore it seems like the efficient way to do it is via the PHP page, setting the header to 301 redirection according to the UID:

<?
Header( "HTTP/1.1 301 Moved Permanently" ); 
// Getting the page static name from the DB according to the UID
$result = mysql_query('SELECT Name FROM DB WHERE UID='$_GET["uid"]'');
$row=mysql_fetch_assoc($result);
// Redirect to the new page
Header( "Location: http://www.domain.com/static/" . $row[0] ); 
?> 

My question is if this method will effect in a negative way on my pages' rankings, considering the paragraph I quoted above that the best way to do a redirection is through the .htaccess.

Thanks!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The same headers will be sent the same whichever way you do it. Therefore, to the user (or to a search engine) it won't be any different so the PHP won't negatively effect your page rank compared to the .htaccess way.

The PHP way will be a little bit slower as every time the page is accessed a database query is fired off. If the site doesn't have too much traffic going to those pages it shouldn't be an issue though.

In your PHP page, do the database connection first because if the page doesn't exist you will want to either redirect them to another page or pass 404 error headers instead of the 301 header.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...