您好,我们有多个Wordpress网站,最近它决定控制.htaccess文件更加主动。我正在尝试添加以下内容:
<FilesMatch “sync.cgi$“>
Satisfy Any
Allow from all
</ FilesMatch>
我们需要添加此内容,以允许我们的Bitbucket存储库使用Webhook执行sync.cgi文件。这是我们持续集成配置中的关键步骤,它使站点可以跟踪正确的GIT分支。
回到发生的情况:当我将.htaccess文件设置为权限:400时,它很快将其设置回644,并从中删除该语句。我只能猜测它会删除文件并重新制作它?我尝试将其添加到#BEGIN / END WordPress部分的上方和下方,但似乎并不重要。
在WP删除我的编辑之前,完整的.htaccess文件如下所示:
Order allow,deny
Allow from all
Deny from env=passreq
Satisfy any
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^gitbucket - [L,NC]
RewriteCond %{HTTP_HOST} (.*)website.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
<FilesMatch “sync.cgi$“>
Satisfy Any
Allow from all
</ FilesMatch>
当删除我的更改时,它将更改回此:
Order allow,deny
Allow from all
Deny from env=passreq
Satisfy any
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^gitbucket - [L,NC]
RewriteCond %{HTTP_HOST} (.*website.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
如何将所需内容添加到htaccess文件中?我以为将其设置为400会阻止WP更改内容?
还是我需要修改“允许订购,拒绝”行?如果是这样,有人知道吗?
谢谢您的帮助!
答案 0 :(得分:0)
因此,它比解决方案更能解决问题,但是我所做的是将必要的htaccess更改放入了cgi脚本所在的子文件夹中的新htaccess文件中,而不是尝试编辑WP htaccess文件。这解决了问题,现在bitbucket可以访问CGI脚本,并且WP可以破坏htaccess文件所需的所有内容,而不会影响我们的持续集成设置。
也就是说,如果有人能真正阻止WP重新创建htaccess文件并删除对它的更改,我还是想知道。