Pretty urls not working laravel 5.2 on a https protocol

余生长醉 提交于 2019-12-12 02:22:23

问题


Pretty urls was working on when it was on "http" using this tutorial (https://laravel.io/forum/09-15-2015-removing-indexphp-from-url-laravel-5116) i figured it out but as i configured the "https" it stopped working (Not Found The requested URL /login was not found on this server. Apache/2.4.7 (Ubuntu) Server at wasamar.com.ng Port 443), what did i do wrong?

by the way i am using an ubuntu cloud server 14.04

This is my virtual host config /etc/apache2/sites-avalable/wasamar.com.ng.conf

<VirtualHost *:80>                                                                           
    # The ServerName directive sets the request scheme, hostname and port that           
    # the server uses to identify itself. This is used when creating                     
    # redirection URLs. In the context of virtual hosts, the ServerName                  
    # specifies what hostname must appear in the request's Host: header to               
    # match this virtual host. For the default virtual host (this file) this             
    # value is not decisive as it is used as a last resort host regardless.              
    # However, you must set it for any further virtual host explicitly.                  

    ServerName wasamar.com.ng                                                            
    ServerAlias www.wasamar.com.ng                                                       

    ServerAdmin info@wasamar.com.ng                                                      
    DocumentRoot /var/www/html/wasamar/public/                                           

    # Redirect permanent "/" "https://wasamar.com.ng/"                                   

    <Directory /var/www/html/wasamar/public/>                                            
             Options Indexes FollowSymLinks                                              
                     AllowOverride All                                                   
                     Require all granted                                                 
    </Directory>                                                                         

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,               
    # error, crit, alert, emerg.                                                         
    # It is also possible to configure the loglevel for particular                       
    # modules, e.g.                                                                      
    #LogLevel info ssl:warn                                                              

    ErrorLog ${APACHE_LOG_DIR}/error.log                                                 
    CustomLog ${APACHE_LOG_DIR}/access.log combined                                      

    # For most configuration files from conf-available/, which are                       
    # enabled or disabled at a global level, it is possible to                           
    # include a line for only one particular virtual host. For examplethe               
    # following line enables the CGI configuration for this host only                    
    # after it has been globally disabled with "a2disconf".                              
    #Include conf-available/serve-cgi-bin.conf                                           
    </VirtualHost>                                                                               

   <IfModule mod_ssl.c>                                                                         
   <VirtualHost *:443>                                                                          

    ServerAdmin info@wasamar.com.ng                                                      
    ServerName wasamar.com.ng                                                            
    DocumentRoot /var/www/html/wasamar/public/                                           

    #   SSL Engine Switch:                                                               
    #   Enable/Disable SSL for this virtual host.                                        
    SSLEngine on                                                                         

    <Directory /var/www/html/wasamar/public/>                                            
             Options Indexes FollowSymLinks                                              
             AllowOverride All                                                           
             Require all granted                                                         
    </Directory>                                                                         

    #   A self-signed (snakeoil) certificate can be created by installing                
    #   the ssl-cert package. See                                                        
    #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.                  
    #   If both key and certificate are stored in the same file, only the                
    #   SSLCertificateFile directive is needed.                                          
    SSLCertificateFile /etc/apache2/ssl/wasamar.com.ng/apache.crt                        
    SSLCertificateKeyFile /etc/apache2/ssl/wasamar.com.ng/apache.key                     
    </VirtualHost>                                                                               

    </IfModule> 

This is my .htaccess file

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

RewriteEngine On                                                        

# Redirect Trailing Slashes If Not A Folder...                          
RewriteCond %{REQUEST_FILENAME} !-d                                     
RewriteRule ^(.*)/$ /$1 [L,R=301]                                       

# Handle Front Controller...                                            
RewriteCond %{REQUEST_FILENAME} !-d                                     
RewriteCond %{REQUEST_FILENAME} !-f                                     
RewriteRule ^ index.php [L]                                             

# Handle Authorization Header                                           
RewriteCond %{HTTP:Authorization} .                                     
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]           

# Force SSL                                                             
RewriteCond %{HTTPS} !=on                                               
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]              


回答1:


I think the https redirect should be first:

RewriteEngine On

# Force SSL
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
...


来源:https://stackoverflow.com/questions/42831722/pretty-urls-not-working-laravel-5-2-on-a-https-protocol

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!