« Control htaccess Basic Authentication with PHP and mod_rewrite27 Request Methods for Apache rewritecond htaccess »
301 Redirect with mod_rewrite or RedirectMatch
The Apache Web Server provides a couple ways to issue 301 Redirects from within .htaccess or httpd.conf files.
When do you need a 301 Redirect?
Using mod_alias we have access to these directives: Redirect, RedirectMatch, RedirectPermanent, and RedirectTemp. You only need to know that RedirectMatch allows pattern matching and Redirect is only for a single file.
RedirectRedirect 301 /2007/webmaster/custom-phpini-with-fastcgi-on-dreamhost.html http://www.askapache.com/dreamhost/custom-phpini-with-fastcgi-on-dreamhost.html Redirect 301 /2007/phpbb/sending-post-form-data-with-php-curl.html http://www.askapache.com/htaccess/sending-post-form-data-with-php-curl.html Redirect 301 /htaccess.txt /wp-content/uploads/p/htaccess.txt Redirect 301 /2007/webmaster/php-and-ajax-shell-console.html http://www.askapache.com/tools/php-and-ajax-shell-console.html Redirect 301 /2007/webmaster/custom-phpini-with-fastcgi-on-dreamhost.html http://www.askapache.com/dreamhost/custom-phpini-with-fastcgi-on-dreamhost.html
RedirectMatchRedirectMatch 301 ^/(.*)\.htm$ http://www.askapache.com/$1.html RedirectMatch 301 ^/200([0-9])/([^01])(.*)$ http://www.askapache.com/$2$3 RedirectMatch 301 ^/category/(.*)$ http://www.askapache.com/$1 RedirectMatch 301 ^/(.*)/htaccesselite-ultimate-htaccess-article.html(.*) http://www.askapache.com/htaccess/htaccess.html RedirectMatch 301 ^/(.*)\.html/1/(.*) http://www.askapache.com/$1.html$2 RedirectMatch 301 ^/manual/(.*)$ http://www.php.net/manual/$1 RedirectMatch 301 ^/dreamweaver/(.*)$ http://www.askapache.com/tools/$1 RedirectMatch 301 ^/z/(.*)$ http://static.askapache.com/$1
mod_rewrite is a powerful Apache module, and you should read more about it before you cause a problem.
RewriteRule .* http://www.askapache.com/$1 [R=301,L] RewriteRule ^(.*)\.html([^c]+)comment-(.+)$ http://www.askapache.com/$1.html#comment-$3 [R=301,L,NE]
« Control htaccess Basic Authentication with PHP and mod_rewrite
27 Request Methods for Apache rewritecond htaccess »
The love of liberty is the love of others; the love of power is the love of ourselves.
-- William Hazlitt
The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect. Tim Berners-Lee
Thanks, this is what i needed.
Just one thing, if new and old urls are both on the same domain, why it does not work without full new/destination URL:
Redirect 301 /some-page.html /new-page.html
It does not work. you have to write:
Redirect 301 /some-page.html http:www.example.com/new-page.html
How do you redirect an exe or zip file?
I’ve tried:
Redirect 301 http://www.site.com/old/software.exe http://www.site.com/new/software.exe
But it doesn’t work…
hi
have a nice time.
i have many of address forum one page !!
how can i lock only 1 link for every page.
for example :
i have :
modules.php?name=news
news.html
news.php
now i want only news.html for page ! and when any user type modules.php?name=news in address bar , redirect to news.html
sorry for my very bad english .
i m waiting for you answer.
thanks a lot.
Great! Thank you very much! It solved my problem to redirect /blog/blog-posts/ to /blog-posts/ :)
Hi,
I’m using a tool to crawl my web pages. And the tool says I’ve duplicate pages. The duplicates are below:
1. /
2. /index.php
Is it necessary and possible to redirect (1) to (2)?
Thanks,
Biju.
Hello,
I try desperately to apply your advice without success, I need to replace the words posts by donations in my url.
So I did this but this does not :
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^([-]?[0-9]+)([-_][^/]*)?/posts/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?\.html$ [NC]
RewriteRule ^/(.*)$ ([-]?[0-9]+)([-_][^/]*)?/dons/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?\.html$1 [L,R=301]
or
RedirectMatch 301 ^([-]?[0-9]+)([-_][^/]*)?/posts/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?\.html$ /([-]?[0-9]+)([-_][^/]*)?/dons/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?\.html
Could you tell me where is my mistake.
Thank you for your help
best regards
Tags: 301 Redirect, Ajax, Apache, askapache, console, curl, DreamHost, Elite, Htaccess, httpd, httpd.conf, Mod_Rewrite, PHP, phpBB, post, Redirect, Rewrite Tricks, rewriterule, server, Shell, stat, trick,
It's very simple - you read the protocol and write the code. -Bill Joy
HTML | DCMI | GRDDL | XOXO | XDMP | XFN | DOM | XML | XHTML 1.1 Strict | CSS 2.1 | W3C
↑ TOPExcept where otherwise noted, content on this site is licensed under a Creative Commons Attribution 3.0 License, just credit with a link.
This site is not supported or endorsed by The Apache Software Foundation (ASF). All software and documentation produced by The ASF is licensed. "Apache" is a trademark of The ASF. NCSA HTTPd.
UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
I used your link above as a guide to redirect all pages with a slash at the end to .html
RedirectMatch 301 ^/(.*)/$ http://www.example.net/$1.html
but google says I still have pages without the slash (previously wordpress) that show 404. I tried
RedirectMatch 301 ^/(.*)$ http://www.example.net/$1.html
but this didn’t work. any ideas. I have 2 other site to redirect, some with 100+ pages so individually wont work. Ive looked anywhere, any idea? Thanks!