Reputation: 2374
I've .htaccess file which contains some 301 redirects. See the .htaccess code below. The third 301 redirect works fine. But the first and second redirects are producing 404 Page not found result. I've searched over SO and google and found some solutions. But none of them are working.
Following is my .htaccess file:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Redirect 301 /page.php?page=8 http://www.mydomain.com/about-us/
Redirect 301 /page.php?page=5 http://www.mydomain.com/contact-us/
Redirect 301 /testimonial.php http://www.mydomain.com/testimonials/
Please suggest.
Upvotes: 0
Views: 236
Reputation: 2374
I've tried many was found here in SO and google.com; Nothing worked. Finally, I used a different approach. I've created page.php file and there I used following code:
$page = $_GET['page'];
switch ($page) {
case 6:
$link = 'http://webindream.com/about-us/';
break;
case 7:
$link = 'http://webindream.com/contact-us';
break;
default:
$link = 'http://webindream.com/';
}
header("Location: $link", true, 301);
Hope this will help someone to get rid of .htaccess and redirect smoothly.
Upvotes: 1
Reputation: 756
I think that if you do it like this, it could work (according to this http://httpd.apache.org/docs/current/en/mod/mod_alias.html#redirect):
Redirect 301 /page.php http://www.mydomain.com/contact-us/
But it's not doing what you expected for. So I suggest these rules
RewriteCond %{QUERY_STRING} (^|&)id=8(&|$)
RewriteRule ^page\.php http://www.mydomain.com/about-us/ [R=301,L]
RewriteCond %{QUERY_STRING} (^|&)id=5(&|$)
RewriteRule ^page\.php http://www.mydomain.com/contact-us/ [R=301,L]
I really don't know if that's the best way.
Upvotes: 1