【问题标题】:Pretty urls not working laravel 5.2 on a https protocol漂亮的网址在 https 协议上无法使用 laravel 5.2
【发布时间】:2017-08-07 11:43:10
【问题描述】:

Pretty urls 在使用本教程 (https://laravel.io/forum/09-15-2015-removing-indexphp-from-url-laravel-5116) 在“http”上时正在工作,我想通了,但是当我配置“https”时它停止工作 (未找到 在此服务器上未找到请求的 URL /login。 Apache/2.4.7 (Ubuntu) 服务器在 wasamar.com.ng 端口 443),我做错了什么?

顺便说一句,我使用的是 ubuntu 云服务器 14.04

这是我的虚拟主机配置 /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> 

这是我的 .htaccess 文件

<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]              

【问题讨论】:

标签: apache .htaccess redirect laravel-5.2 ubuntu-14.04


【解决方案1】:

我认为https重定向应该是第一个:

RewriteEngine On

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

【讨论】:

  • 我已按照您的建议提出,但错误仍然存​​在。
猜你喜欢
  • 2016-12-31
  • 2016-12-24
  • 2014-04-22
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 2013-07-03
  • 2016-02-14
  • 2012-03-07
相关资源
最近更新 更多