[mod_rewrite] Worked with SSL, does not without SSL

Hallo,

I am using the following .htaccess configuration for some time now, which works perfectly:

RewriteEngine on

RewriteCond %{SERVER_PORT} !=443
RewriteRule ^(.*)$ https://www.example.de/$1 [R=301,L]

RewriteRule ^/$ index.php [L]
RewriteRule ^(.\.php.)$ $1 [L]
RewriteRule ^(.\.html.)$ $1 [L]
RewriteRule ^(.\.css.)$ $1 [L]
RewriteRule ^(.\.js.)$ $1 [L]
RewriteRule ^(.\.jpg.)$ $1 [L]
RewriteRule ^(.\.swf.)$ $1 [L]
RewriteRule ^(.\.flv.)$ $1 [L]
RewriteRule ^(.\.fla.)$ $1 [L]
RewriteRule ^(.\.mp3.)$ $1 [L]
RewriteRule ^(.\.png.)$ $1 [L]
RewriteRule ^(.\.pjpeg.)$ $1 [L]
RewriteRule ^(.\.pdf.)$ $1 [L]
RewriteRule ^(.\.jpeg.)$ $1 [L]
RewriteRule ^(.\.gif.)$ $1 [L]
RewriteRule ^(.\.xml.)$ $1 [L]
RewriteRule ^(.\.txt.)$ $1 [L]
RewriteRule ^(.\.ico.)$ $1 [L]
#RewriteRule ^(.admin.)$ $1 [L]

Benutzerprofile mit Vorname-Nachname aufrufen ermöglichen

RewriteRule ^(.)-(.)$ benutzer.php?vorname=$1&nachname=$2 [L]

Benutzerprofile mit gewähltem Schlagwort erreichbar machen

RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^(.*)$ benutzer.php?mylink=$1 [L]

Since I removed the SSL certificate and changed to port 80 I adapted the .htaccess to the following configuration. (Just the port is being changed).
Now http://www.example.de always returns #40 - but http://www.example.de/index.php works like a charm.

RewriteEngine on

RewriteCond %{SERVER_PORT} !=80
RewriteRule ^(.*)$ http://www.example.de/$1 [R=301,L]

RewriteRule ^/$ index.php [L]
RewriteRule ^(.\.php.)$ $1 [L]
RewriteRule ^(.\.html.)$ $1 [L]
RewriteRule ^(.\.css.)$ $1 [L]
RewriteRule ^(.\.js.)$ $1 [L]
RewriteRule ^(.\.jpg.)$ $1 [L]
RewriteRule ^(.\.swf.)$ $1 [L]
RewriteRule ^(.\.flv.)$ $1 [L]
RewriteRule ^(.\.fla.)$ $1 [L]
RewriteRule ^(.\.mp3.)$ $1 [L]
RewriteRule ^(.\.png.)$ $1 [L]
RewriteRule ^(.\.pjpeg.)$ $1 [L]
RewriteRule ^(.\.pdf.)$ $1 [L]
RewriteRule ^(.\.jpeg.)$ $1 [L]
RewriteRule ^(.\.gif.)$ $1 [L]
RewriteRule ^(.\.xml.)$ $1 [L]
RewriteRule ^(.\.txt.)$ $1 [L]
RewriteRule ^(.\.ico.)$ $1 [L]
#RewriteRule ^(.admin.)$ $1 [L]

Benutzerprofile mit Vorname-Nachname aufrufen ermöglichen

RewriteRule ^(.)-(.)$ benutzer.php?vorname=$1&nachname=$2 [L]

Benutzerprofile mit gewähltem Schlagwort erreichbar machen

RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^(.*)$ benutzer.php?mylink=$1 [L]

Whats done wrong here? I have no ideas left…

thanks alot for your anticipated help!

xuled,

Works perfectly? Horrors! Much of it does nothing.

I’ll comment IN your code (PLEASE use [ code ] … [ /code ] so the code remains when responding):

RewriteEngine on

#RewriteCond %{SERVER_PORT} !=80
#RewriteRule ^(.*)$ http://www.example.de/$1 [R=301,L]
# Should be:
RewriteCond %{SERVER_PORT} !^80$
RewriteRule .? http://www.example.de%{REQUEST_URI} [R=301,L]

RewriteRule ^/$ index.php [L]
# If you're using Apache 2.x, this will NEVER match!
# If you're using Apache 1.x, it will match the domain request (no file specified)

# These will do NOTHING - they redirect to themselves!
# WHY do you have the .* (everything or nothing) AFTER the file extension?
# If that's for the %{QUERY_STRING}, that's NOT how it's done!
[COLOR="Gray"]RewriteRule ^(.*\\.php.*)$ $1 [L]
RewriteRule ^(.*\\.html.*)$ $1 [L]
RewriteRule ^(.*\\.css.*)$ $1 [L]
RewriteRule ^(.*\\.js.*)$ $1 [L]
RewriteRule ^(.*\\.jpg.*)$ $1 [L]
RewriteRule ^(.*\\.swf.*)$ $1 [L]
RewriteRule ^(.*\\.flv.*)$ $1 [L]
RewriteRule ^(.*\\.fla.*)$ $1 [L]
RewriteRule ^(.*\\.mp3.*)$ $1 [L]
RewriteRule ^(.*\\.png.*)$ $1 [L]
RewriteRule ^(.*\\.pjpeg.*)$ $1 [L]
RewriteRule ^(.*\\.pdf.*)$ $1 [L]
RewriteRule ^(.*\\.jpeg.*)$ $1 [L]
RewriteRule ^(.*\\.gif.*)$ $1 [L]
RewriteRule ^(.*\\.xml.*)$ $1 [L]
RewriteRule ^(.*\\.txt.*)$ $1 [L]
RewriteRule ^(.*\\.ico.*)$ $1 [L][/COLOR]

#RewriteRule ^(.*admin.*)$ $1 [L]
### Benutzerprofile mit Vorname-Nachname aufrufen ermöglichen ###

# Dangerous as it will capture all sort of JUNK with
# a hyphen inserted and redirect to your benutzer script
RewriteRule ^(.*)-(.*)$ benutzer.php?vorname=$1&nachname=$2 [L]

### Benutzerprofile mit gewähltem Schlagwort erreichbar machen ###
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^(.*)$ benutzer.php?mylink=$1 [L]
# Same comment as above re Apache 1.x vs Apache 2.x (RewriteCond)
# EXCEPT that this will redirect EVERYTHING to benutzer
# INCLUDING css, js, php, html, pdf, yadda-yadda files!

What does that mean? Is that supposed to be 404 (file not found)? That should only be seen if benutzer.php doesn’t exist.

Regards,

DK