Question

Hi im configuring a server in CentOS 6.5 with apache 2.4 and PHP 5.5 I install an SSL certificate and all go fine.

in another server i did the http to https redirect on htaccess file. i meke test with that in my new server and didnt work, here are my configuration:

My .htaccess:

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
        </IfModule>

        RewriteEngine On

        # Redirect Trailing Slashes...
        RewriteRule ^(.*)/$ /$1 [L,R=301]

        # Handle Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond   %{REQUEST_URI}  !/phpmyadmin/.*
        RewriteCond   %{REQUEST_URI}  !/phpMyAdmin/.*
        RewriteRule ^ index.php [L]
    </IfModule>

My virtual host file:

    NameVirtualHost *:80

    <VirtualHost *:80>
            ServerName subdomain.domain.com
            ServerAlias www.subdomain.domain.com
            DocumentRoot /var/www/laravel-project-namel/public

           <Directory /var/www/laravel-project-namel/public>
              <IfModule mod_rewrite.c>
              Options -MultiViews
              RewriteEngine On

                RewriteCond %{HTTP_HOST} ^www\.(.*)
                RewriteRule ^.*$ https://%1/$1 [R=301,L]


              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteRule ^ index.php [L]


           </IfModule>
        </Directory>
    </VirtualHost>

    NameVirtualHost *:443

    <VirtualHost *:443>
            SSLEngine on
            SSLProtocol all -SSLv2
            SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
            SSLCertificateFile /etc/pki/tls/certs/cert-valido_clientes_databyte_cl.crt
            SSLCertificateKeyFile /etc/pki/tls/certs/cert-valido-private.key
            SSLCertificateChainFile /etc/pki/tls/certs/cert-valido_clientes_databyte_cl.pem
            ServerName subdomain.domain.com
            ServerAlias www.subdomain.domain.com
            DocumentRoot /var/www/laravel-project-namel/public

           <Directory /var/www/laravel-project-namel/public>
              <IfModule mod_rewrite.c>
              Options -MultiViews
              RewriteEngine On
              RewriteCond %{REQUEST_FILENAME} !-f
             RewriteRule ^ index.php [L]
           </IfModule>
        </Directory>
    </VirtualHost>

i replace the domain and the folder to generic names, but all other are true. (sorry about my english)

i did search and test every solution i found, but my site refuse to redirect.

Was it helpful?

Solution

Problem is you're not capturing the URI in patter and using $1, %1 as back-reference.

Try this rule in your root .htaccess as very first rule:

RewriteCond %{HTTP_HOST} ^www\. [OR]
RewriteCond %{HTTPS} off
RewriteRule ^ https://domain.com%{REQUEST_URI} [R=301,L,NE]
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top