Apache导致403被禁止,即使在使用与其他域一起工作的DocumentRoot时也是如此
但其他域(位于Apache导致403被禁止,即使在使用与其他域一起工作的DocumentRoot时也是如此,apache,webserver,ubuntu-16.04,Apache,Webserver,Ubuntu 16.04,但其他域(位于http://OTHER.example)正在工作,因此我将DocumentRoot更改为其他,并且(重新启动apache2后)错误是相同的 wget http://maydomain.example --2017-04-06 18:21:12-- https://mydomain.example Resolving mydomain.example (mydomain.example)... IP Connecting to mydomain.example (mydomai
http://OTHER.example
)正在工作,因此我将DocumentRoot
更改为其他,并且(重新启动apache2后)错误是相同的
wget http://maydomain.example
--2017-04-06 18:21:12-- https://mydomain.example
Resolving mydomain.example (mydomain.example)... IP
Connecting to mydomain.example (mydomain.example)|IP|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2017-04-06 18:21:12 ERROR 403: Forbidden.
我注意到您正在使用一些Debian衍生工具(可能是Ubuntu 16.04)来为您的开发环境工作。我已经做过很多次了 导致错误的原因可能是var/www/html文件夹是“根目录”的。这意味着root拥有它,而Apache(www数据用户)没有足够的权限访问该内容。有几种解决方案。你可以选择最适合你需要的。我将首先发布我的首选:
/var/www/html
:将该文件夹更改为www数据用户和www组的权限,并将其chmod 777。警告:在将其上载到生产服务器时,请确保权限正常这是虚拟主机的配置。。。请参阅
重写*
行,我删除了所有
more /var/www/html/.htaccess
RewriteEngine On
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]
现在正在工作(!)
感谢@Nomad和@MatíasNavarroCarter提供线索和清单。这看起来像是SSL配置的问题。你能分享文件
/etc/apache2/sites available/default ssl.conf
的详细信息吗?谢谢你的文件。看起来只有一个虚拟主机在端口443上侦听。您的子域是否有单独的
配置?或者调用“wget http:/OTHER.example”也会重定向到https
?您还尝试过设置logleveldebug
,并跟踪${APACHE_LOG_DIR}/error.LOG
?你可能会从那里得到一些线索。嗨@Nomad,我使用“全部默认”。。。但另一个信息是:我们在/var/www/html
a安装了SSL,并使用certbot(允许对所有域和子域进行加密)。。。关于日志等。谢谢,我今天会查看。嗨,是的,使用UBUNTU 16LTS。另一个上下文:/var/www/html与。。。那里的权限都还可以,是第一次检查。。它也是一个虚拟主机。。。我明天会在一些测试之后回来,所以将Apache用户更改为您的用户。你可以这样做:1<代码>sudo nano/etc/apache2/envvars2。使用您的用户名更改apache运行用户和组(www数据)。但如果您的服务器用于生产,则不要这样做。
more /var/www/html/.htaccess
RewriteEngine On
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]
# REMOVED THIS:
# RewriteEngine on
# RewriteCond %{SERVER_NAME} =www.oficial.news [OR]
# RewriteCond %{SERVER_NAME} =oficial.news
# RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]