This is the source.
I’m copying it for just in case it get’s lost for some reason.
- If
http://example.com/foo/bar
does not exist, redirect to http://other.example.com/foo/bar
. (Put this in an .htaccess file in your top-level web directory.)
|
# .htaccess in root of example.com RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ http://other.example.com/$1 [R] |
- Handle all requests for top-level
.html
files and files with no extensions (http://example.com/foo
,http://example.com/foo.html
) with a single PHP program /foo/show.php
. Also, ignore trailing characters in set { : ; , .
} so URLs like “http://example.com/foo.
” can be copied-n-pasted from plain text sentences by inattentive users.
|
# .htaccess in root of example.com RewriteRule ^/?([^/]*.html?|[^./]*)[:;,.]*$ /foo/show.php [L,NS] |
Examples:
|
<a href=“http://tomclegg.net/rewriterule”>http://tomclegg.net/rewriterule</a> <a href=“http://tomclegg.net/rewriterule.html;”>http://tomclegg.net/rewriterule.html;</a> |
- Redirect GET requests for
http://example.com/foo/bar
to http://example.com/bar
(and/foo/bar.html
to /bar.html
). Handle POST requests with PHP program rather than attempting to redirect a POST (which is unlikely to work well).
|
# .htaccess in foo folder in example.com’s document root RewriteEngine On RewriteCond %{REQUEST_METHOD} GET RewriteRule ^/?([^/]*.html?|[^./]*)[:;,.]*$ /$1 [R,L,NS] RewriteCond %{REQUEST_METHOD} POST RewriteRule ^/?([^/]*.html?|[^./]*)[:;,.]*$ /foo/show.php [L,NS] |
Examples:
|
<a href=“http://tomclegg.net/w/rewriterule”>http://tomclegg.net/w/rewriterule</a> <a href=“http://tomclegg.net/w/rewriterule.html;”>http://tomclegg.net/w/rewriterule.html;</a> |