【发布时间】:2018-01-01 16:27:09
【问题描述】:
在我的服务器上,我在 root 和 codeigniter 项目上有 wordpress 站点作为 wordpress 中的子文件夹,我为 codeigniter 项目创建了子域。在没有 SSL 的情况下两者都可以正常工作现在我想在子域项目上应用 SSL,同时在这个我面临的问题上应用 ssl。当我使用 https://subdomain.example.com 打开站点时,它给了我禁止的 403 错误。
以下是我在 apache 上托管的网站的示例。我的根 wordpress 项目有符号链接。
http://example.com - 工作正常 - root 上的 wordpress 项目
http://subdomain.example.com - 工作正常 - wordpress 项目文件夹下的 codeigniter 项目
https://subdomain.example.com - 出现禁止错误
以下是我的 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>
wordpress项目的htaccess
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]
【问题讨论】:
-
您的错误日志中有什么内容吗?
-
我的日志中没有关于此的内容
-
你把你的 ci 项目改成 www-data 了吗?
-
是的帕克戴尔。当我在 url 中使用 http 时,它工作正常,只是在使用 https 时出现禁止错误
-
wordpress 站点 RewriteEngine 的 .htaccess 中不需要这样做 RewriteCond %{HTTP_HOST} subdomain.example.com$ RewriteCond %{REQUEST_URI} !^/subfolder RewriteRule ^(.*)$ /子文件夹/$1 [L]
标签: codeigniter ssl amazon-ec2 http-status-code-403 apache2.4