[英]AH01797: client denied by server configuration Wordpress Plugin JS Files in Apache Web server
[英]error accessing web htaccess AH01797: client denied by server configuration
當我打開我的網站外部時出現錯誤。 我收到此錯誤:內部服務器錯誤服務器遇到內部錯誤或配置錯誤,無法完成您的請求。
如果我刪除我的 .htaccess,它不會給我錯誤,但會顯示 /htdocs 的路徑,並且我已經配置了一個子文件夾。
如果我打開 localhost:80,它會正確重定向到子文件夾 htdocs/folder-name 問題是當我通過www.domain.com外部打開它時。
這是我的.htaccess。路徑:C:\Apache24\htdocs.htaccess 內容:
#DON'T SHOW DIRECTORY LISTINGS
Options -Indexes
#FOLLOW SYMBOLIC LINKS
Options +FollowSymLinks
#SET DEFAULT HANDLER
DirectoryIndex index.html index.php
RewriteEngine on
RewriteCond %{HTTP_HOST} ^DOMAIN.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.DOMAIN.com$
RewriteCond %{REQUEST_URI} !FOLDER/
RewriteRule (.*) /FOLDER/$1 [L]
#ERROR 404 PAGE
ErrorDocument 404 /404.html
APACHE 日志:
client denied by server configuration: C:/Apache24/htdocs/WEBSITE-XX/
[AH01797: client denied by server configuration: C:/Apache24/error/HTTP_FORBIDDEN.html.var
AH01797: client denied by server configuration: C:/Apache24/htdocs/WEBSITE-XX/favicon.ico, referer: https://www.example.com/
AH01797: client denied by server configuration: C:/Apache24/error/HTTP_FORBIDDEN.html.var, referer: https://www.example.com/
** 重寫模塊處於活動狀態且路徑正確 **
VirtualHost的httpd.conf代碼
編輯
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot C:\Apache24\htdocs\example
ErrorLog C:\Apache24\logs\error.log
CustomLog C:\Apache24\logs\access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot C:\Apache24\htdocs\example
ErrorLog C:\Apache24\logs\error.log
CustomLog C:\Apache24\logs\access.log combined
SSLEngine on
SSLCertificateFile C:\Apache24\conf\certificate.crt
SSLCertificateKeyFile C:\Apache24\conf\private.key
</VirtualHost>
**** 使用新的 HTTPD.CONF 進行編輯 ****
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot C:\Apache24\htdocs\example
ErrorLog C:\Apache24\logs\error.log
CustomLog C:\Apache24\logs\access.log combined
<Directory C:\Apache24\htdocs\example>
# Requried for mod_rewrite (and disable Indexes / MultiViews)
Options FollowSymLinks
# Allow access
Require all granted
# Enabled .htaccess overrides
AllowOverride All
</Directory>
Redirect 301 / https://example.com/
# RewriteEngine on
# RewriteCond %{SERVER_NAME} =example.com [OR]
# RewriteCond %{SERVER_NAME} =www.example.com
# RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot C:\Apache24\htdocs\example
ErrorLog C:\Apache24\logs\error.log
CustomLog C:\Apache24\logs\access.log combined
<Directory C:\Apache24\htdocs\example>
# Requried for mod_rewrite (and disable Indexes / MultiViews)
Options FollowSymLinks
# Allow access
Require all granted
# Enabled .htaccess overrides
AllowOverride All
</Directory>
SSLEngine on
SSLCertificateFile C:\Apache24\conf\certificate.crt
SSLCertificateKeyFile C:\Apache24\conf\private.key
</VirtualHost>
````
<VirtualHost *:80>: DocumentRoot C:\Apache24\htdocs\example: <VirtualHost *:443>: DocumentRoot C:\Apache24\htdocs\Mymxtools
令人困惑的是,您為兩個 VirtualHosts 定義了不同的DocumentRoot
。 (也許這是您的示例中的錯誤?)盡管您將所有內容重定向到 HTTPS,所以這並不重要,因為它發生了。
但是,您沒有“允許”訪問文件系統的這一部分或啟用.htaccess
覆蓋。
您需要在<VirtualHost *:443>
容器中使用類似以下內容來授予訪問權限並啟用.htaccess
覆蓋。
<Directory C:\Apache24\htdocs\Mymxtools>
# Requried for mod_rewrite (and disable Indexes / MultiViews)
Options FollowSymLinks
# Allow access
Require all granted
# Enabled .htaccess overrides
AllowOverride All
</Directory>
在旁邊:
RewriteEngine on RewriteCond %{SERVER_NAME} =example.com [OR] RewriteCond %{SERVER_NAME} =www.example.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
要在<VirtualHost *:80>
容器中將所有內容從 HTTP 重定向到 HTTPS,您不需要這個“復雜”的 mod_rewrite 規則。 一個更簡單的 mod_alias Redirect
就足夠了(也是首選)。
例如,請改用以下內容:
Redirect 301 / https://example.com/
您應該在此階段規范化主機名。 您之前的 mod_rewrite 規則將保留主機名,即。 www 或非 www。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.