Apache Rewrite
Rewrite should not be encouraged. Most of the time this can be handled by the application - where they have the luxury to compile and debug their work. Use rewrite to redirect to a different port or a maintenance page is fine. Using it to fix mindless applications is sickening.ssl_redirect
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/phpmyadmin(.*) https://%{SERVER_NAME}/phpmyadmin$1 [R,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^/phpmyadmin(.*) https://%{SERVER_NAME}/phpmyadmin$1 [R,L]
This is a stupid one requested by the client. But the QUERY_STRING part is good.
query_string
RewriteEngine On
RewriteOptions MaxRedirects=10
RewriteLogLevel 2
RewriteLog /home/sites/logs/rewrite.log
RewriteCond %{REQUEST_URI} ^/list.php
RewriteCond %{QUERY_STRING} ^cat=100011$
RewriteRule .* http://www.xxx.com/cat/whatever.html [R=301,L]
RewriteCond %{QUERY_STRING} ^cat=100011(.+)$
RewriteRule .* http://www.xxx.com/cat/whatever.html%1 [R=301,L]
RewriteOptions MaxRedirects=10
RewriteLogLevel 2
RewriteLog /home/sites/logs/rewrite.log
RewriteCond %{REQUEST_URI} ^/list.php
RewriteCond %{QUERY_STRING} ^cat=100011$
RewriteRule .* http://www.xxx.com/cat/whatever.html [R=301,L]
RewriteCond %{QUERY_STRING} ^cat=100011(.+)$
RewriteRule .* http://www.xxx.com/cat/whatever.html%1 [R=301,L]
host header
RewriteCond %{HTTP_HOST} ^[^.]+\.some\.corp$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.some\.corp/?(.*) http://www.some.corp/bla/$1/$2 [R,L]
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.some\.corp/?(.*) http://www.some.corp/bla/$1/$2 [R,L]
Note: depending on where you put these rewrite directives, the condition may be slight different. If you are putting them in httpd.conf, the prevailing slash is necessary
RewriteCond %{REQUEST_URI} ^/list.phpIf you are putting them into .htaccess, the prevailing slash must be ignored.
RewriteCond %{REQUEST_URI} ^list.phpMultiple match in request_uri
RewriteCond %{REQUEST_URI} ^/educators/blog
RewriteCond %{REQUEST_URI} !^/educators/blog/index.php
RewriteCond %{QUERY_STRING} ^(cat=|tag=|p=)
RewriteRule .* /educators/blog/index.php [R=301,L]With or without www.
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.com$ [NC]