代码之家  ›  专栏  ›  技术社区  ›  Surinder Singh

仅在https上禁止403错误,但url http工作正常

  •  2
  • Surinder Singh  · 技术社区  · 9 年前

    在我的服务器上,我有根上的wordpress站点和codeigniter项目作为wordpress中的子文件夹,我为codeigniter项目创建了子域。没有SSL,两者都可以正常工作。现在,我想在子域项目上应用SSL,同时在我面临的问题上应用SSL。当我使用打开网站时 https://subdomain.example.com 这是给我禁止403错误。

    下面是我在apache上托管的站点的示例。我有我的根wordpress项目的符号链接。

    http://example.com -工作正常-根上的wordpress项目

    http://subdomain.example.com -工作正常-wordpress项目文件夹下的codeigniter项目

    -获取禁止的错误

    以下是我的apache ssl虚拟主机文件数据。

    <IfModule mod_ssl.c>
            <VirtualHost *:443>
                    ServerAlias subdomain.example.com
                    ServerName subdomain.example.com
                    DocumentRoot /var/www/html/wordpress
    
                    ErrorLog ${APACHE_LOG_DIR}/error.log
                    CustomLog ${APACHE_LOG_DIR}/access.log combined
    
                    SSLEngine on
                    SSLCertificateFile      /home/ubuntu/wordpress/cdq/my-ssl-certifications/fc1d71b08ac8aab1.crt
                    SSLCertificateKeyFile /home/ubuntu/wordpress/cdq/my-ssl-certifications/host.key
                    SSLCertificateChainFile /home/ubuntu/wordpress/cdq/my-ssl-certifications/gd_bundle-g2-g1.crt
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                    SSLOptions +StdEnvVars
                    </FilesMatch>
                    <Directory /usr/lib/cgi-bin>
                                    SSLOptions +StdEnvVars
                    </Directory>
                    <Directory /var/www/html/wordpress>
                            Options Indexes FollowSymLinks MultiViews
                            AllowOverride All
                            Require all granted
                    </Directory>
    
    
    
            </VirtualHost>
    </IfModule>
    

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} subdomain.example.com$
    RewriteCond %{REQUEST_URI} !^/subfolder
    RewriteRule ^(.*)$ /subfolder/$1 [L] 
    
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    
    # add a trailing slash to /wp-admin
    RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
    RewriteRule ^(.*\.php)$ $1 [L]
    RewriteRule . index.php [L]
    

    htaccess子文件夹项目

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    
    RewriteRule ^(.*)$ /index.php/$1 [L]
    
    2 回复  |  直到 9 年前
        1
  •  2
  •   Deepak Sharma    9 年前

    您的配置中存在一些与权限相关的问题:

    <Directory /var/www/html/wordpress>
                        Options Indexes FollowSymLinks MultiViews
                        AllowOverride All
                        Require all granted
    </Directory>
    

    <Directory "/var/www/html/wordpress">
         AllowOverride All
    </Directory>
    

    我已经修改了你的文件,你可以这样使用它:

    <IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAlias subdomain.example.com
        ServerName subdomain.example.com
        DocumentRoot /var/www/html/wordpress
    <Directory "/var/www/html/wordpress">
       AllowOverride All
    </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLEngine on
                SSLCertificateFile      /home/ubuntu/wordpress/cdq/my-ssl-certifications/fc1d71b08ac8aab1.crt
                SSLCertificateKeyFile /home/ubuntu/wordpress/cdq/my-ssl-certifications/host.key
                SSLCertificateChainFile /home/ubuntu/wordpress/cdq/my-ssl-certifications/gd_bundle-g2-g1.crt
                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                    SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                    SSLOptions +StdEnvVars
                </Directory>
        BrowserMatch "MSIE [2-6]" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
    </VirtualHost>
    

        2
  •  2
  •   Surinder Singh    9 年前

    最终解决了问题。问题是项目文件夹结构的权限。现在一切都很好