htaccess https redirect only on specific Zend Frameworks controller/actions

前端 未结 4 1558
夕颜
夕颜 2021-01-27 05:41

I\'m new to this community, but I\'ve found it really useful time to time.

I\'ve searched for the answer a lot, but I didn\'t find anything like I need. I\'ve tried to s

4条回答
  •  不要未来只要你来
    2021-01-27 06:17

    Finally I have solved it! I persevered in searching the answer because I think that doing it with .htaccess is cleaner, smarter and easy to maintain. The problem was essentially due to the regexp used in the "ssl to non-ssl" block that was not correctly matching the value passed (that is best matched now reading the env variable %{THE_REQUEST}, avoiding, in some cases, an erroneus redirects loop.

    I paste here the working code for further reference:

    
        Options +FollowSymLinks
    
        RewriteEngine On
    
        RewriteBase /
    
        RewriteOptions MaxRedirects=1
    
    
    
        RewriteCond %{HTTP_HOST} ^yoursite\.tld [NC]
    
        RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    
    
    
        RewriteCond %{HTTPS} off
    
        RewriteCond %{THE_REQUEST} ^[A-Z]+\ /((controller1|controller2)/(?!(action1|action2))(.*))\ HTTP/
    
        RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [L,R=301]
    
    
    
        RewriteCond %{HTTPS} on
    
        RewriteCond %{THE_REQUEST} !^[A-Z]+\ /((controller1|controller2)/(?!(action1|action2))(.*))\ HTTP/
    
        RewriteRule ^(.*)$ http://%{SERVER_NAME}/$1 [L,R=301]
    
    
    
        RewriteCond %{REQUEST_FILENAME} \.(js|css|ico|gif|jpg|png|swf|txt|pdf)$ [OR]
    
        RewriteCond %{REQUEST_FILENAME} -s [OR]
    
        RewriteCond %{REQUEST_FILENAME} -l [OR]
    
        RewriteCond %{REQUEST_FILENAME} -d
    
        RewriteRule ^.*$ - [NC,L]
    
    
    
        RewriteCond %{REQUEST_FILENAME} !-f
    
        RewriteCond %{REQUEST_FILENAME} !-d
    
        RewriteRule ^.*$ index.php [NC,L]
    

提交回复
热议问题