HTTP auf HTTPS umleiten, außer ein Pfad

Hallo, ich möchte per .htaccess alle URL´s von http auf https umleiten, was auch nicht das Problem ist.

Leider habe ich eine Shopseite, die kein https haben darf. Sobald ich “RewriteCond %{HTTPS} off” mache, funktioniert “RewriteRule ^sendungsverfolgung$ http://domain.de/sendungsverfolgung [L,R=301]” nicht mehr… was auch irgendwie logisch ist.

Kann mir einer sagen wie ich das hinbekommen könnte? Ich finde einfach nichts dazu -_-

Aus dem Bauch raus: die Umleitung auf https mit einer weiteren RewriteCond auf „ungleich“ ^sendungsverfolgung$  testen.

In etwa so:

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !(sendungsverfolgung$)
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^sendungsverfolgung$ http://domain.de/sendungsverfolgung [L,R=301]

 

wenn ich es mit off mache, funktioniert alles, mit !=on aber nicht… wenn ich die Umleitung prüfe, kommt allerdings weiterhin 200 und nicht 301…

 

RewriteEngine on

#RewriteBase /shopware/

# Https config for the backend
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} (^sendungsverfolgung$)
#RewriteRule backend/(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^sendungsverfolgung$ http://domain.de/sendungsverfolgung [L,R=301]

RewriteRule shopware.dll shopware.php
RewriteRule files/documents/.* engine [NC,L]
RewriteRule backend/media/(.*) media/$1 [NC,L]

RewriteCond %{REQUEST_URI} !(\/(engine|files|templates)\/)
RewriteCond %{REQUEST_URI} !(\/media\/(archive|banner|image|music|pdf|unknown|video)\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ shopware.php [PT,L,QSA]


# Fix missing authorization-header on fast_cgi installations
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]


# Staging-Rules start
#SetEnvIf Host "staging.test.shopware.in" ENV=staging

DirectoryIndex index.html
DirectoryIndex index.php
DirectoryIndex shopware.php

# Disables download of configuration

    Deny from all


# Enable gzip compression
#
# AddOutputFilterByType DEFLATE text/html text/xml text/plain text/css text/javascript application/json
#


AddOutputFilterByType DEFLATE text/html text/xml text/css text/plain
AddOutputFilterByType DEFLATE image/svg+xml application/xhtml+xml application/xml
AddOutputFilterByType DEFLATE application/rdf+xml application/rss+xml application/atom+xml
AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
AddOutputFilterByType DEFLATE application/x-font-ttf application/x-font-otf
AddOutputFilterByType DEFLATE font/truetype font/opentype





    ExpiresActive on
    ExpiresDefault "access plus 1 month"
    FileETag None
    
        Header append Cache-Control "public"
        Header unset ETag
    





# Disables auto directory index

	Options -Indexes



    Options -MultiViews



# php_value memory_limit 128M
  php_value max_execution_time 120
# php_value upload_max_filesize 20M
   php_flag phar.readonly off
   php_flag magic_quotes_gpc off
   php_flag session.auto_start off
   php_flag suhosin.session.cryptua off
   php_flag zend.ze1_compatibility_mode off


# AddType x-mapp-php5 .php
# AddHandler x-mapp-php5 .php

ich versteh gar nichts mehr -_-

Wenn ich mich nicht irre, stoppt nach deinem Beispiel ein Matching nach (.*), weil es als Last markiert ist. “domain.de” müsste da auch ausgetauscht werden.

RewriteCond %{HTTPS} off
RewriteRule ^sendungsverfolgung http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

 

Klappt leider immer noch nicht :frowning: