ApacheRewrite: Unterschied zwischen den Versionen

Aus crazylinux.de
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
K (source...)
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Another solution for getting the browser to use the right filename for saving is to use mod_rewrite to hide the fact that you are using a script at all. Either in the httpd.conf or a .htaccess file, include something like the following:
= internal redirect =


RewriteEngine On
Another solution for getting the browser to use the right filename for saving is to use mod_rewrite to hide the fact that you are using a script at all. Either in the httpd.conf or a .htaccess file, include something like the following:
RewriteRule ^/downloads/(.*) /getFile.php?filename=$1 [NE]


<source lang="apache">
RewriteEngine On
RewriteRule ^/downloads/(.*) /getFile.php?filename=$1 [NE]
</source>


mod_rewrite will translate the url, and the browser (and the user) won't know the difference.
mod_rewrite will translate the url, and the browser (and the user) won't know the difference (SEO-Urls)
 
= external redirect =
 
eg. redirect http://crazylinux.de/wiki/TAR to http://crazylinux.de/TAR <source lang="apache">
RewriteRule ^/wiki/(.*)$        http://crazylinux.de/$1 [R=301,L]
</source>
 
the browser will see the difference
 
= Redirect visitor by domain name =
 
In some cases the same web site is accessible by different addresses, like domain.com, www.domain.com, www.domain2.com and we want to redirect it to one address. <source lang="apache">
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R,L]
</source>
 
In this case the requested URL http://domain.com/foo.html would redirected to the URL http://www.domain.com/foo.html.
 
= Force SSL-Redirect (for special directory) =
 
How to redirect http-traffic automatically to https
 
<source lang="apache">
RewriteEngine on
#RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTPS} off
 
#for a special directory
RewriteRule ^/administrator(.*)$ https://%{SERVER_NAME}/administrator$1 [R,L]
 
#or for the whole server
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R,L]
</source>
 
<br>
 
= Redirect all requests to a file (e.g. for maintenance)<br>  =
 
found on http://syslog.warten.de/2008/10/redirect-aller-webseiten-auf-e.html<br>
 
<source lang="apache"><IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/offline\.php$
RewriteRule (^$|\.(html|php)$) http://www.example.com/offline.php [L]
</IfModule></source><br>
 
= Links =
 
http://www.widexl.com/scripts/documentation/mod_rewrite.html
 
Keywords: apache,mod_rewrite,file,rewrite,url,save,saving,htaccess,ssl,redirect,http,https,httpd.conf,443,80,seo
 
[[Category:WWW]]
 
[[Kategorie:WWW]]

Aktuelle Version vom 1. März 2010, 19:30 Uhr

internal redirect

Another solution for getting the browser to use the right filename for saving is to use mod_rewrite to hide the fact that you are using a script at all. Either in the httpd.conf or a .htaccess file, include something like the following:

RewriteEngine On
RewriteRule ^/downloads/(.*) /getFile.php?filename=$1 [NE]

mod_rewrite will translate the url, and the browser (and the user) won't know the difference (SEO-Urls)

external redirect

eg. redirect http://crazylinux.de/wiki/TAR to http://crazylinux.de/TAR

RewriteRule ^/wiki/(.*)$        http://crazylinux.de/$1 [R=301,L]

the browser will see the difference

Redirect visitor by domain name

In some cases the same web site is accessible by different addresses, like domain.com, www.domain.com, www.domain2.com and we want to redirect it to one address.

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R,L]

In this case the requested URL http://domain.com/foo.html would redirected to the URL http://www.domain.com/foo.html.

Force SSL-Redirect (for special directory)

How to redirect http-traffic automatically to https

RewriteEngine on
#RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTPS} off

#for a special directory
RewriteRule ^/administrator(.*)$ https://%{SERVER_NAME}/administrator$1 [R,L]

#or for the whole server
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R,L]


Redirect all requests to a file (e.g. for maintenance)

found on http://syslog.warten.de/2008/10/redirect-aller-webseiten-auf-e.html

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/offline\.php$
RewriteRule (^$|\.(html|php)$) http://www.example.com/offline.php [L]
</IfModule>


Links

http://www.widexl.com/scripts/documentation/mod_rewrite.html

Keywords: apache,mod_rewrite,file,rewrite,url,save,saving,htaccess,ssl,redirect,http,https,httpd.conf,443,80,seo