刚刚将Drupal升级到7.55并且出现了500错误。
打开logs/error.log
并看到自升级以来出现这种情况:
<site-root>/.htaccess: Require not allowed here
我看到更新已经取代了这个:
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\.(?!well-known).*|Entries.*|Repository|Root|Tag|Template|composer\.(json|lock))$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$">
Order allow,deny
</FilesMatch>
有了这个:
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\.(?!well-known).*|Entries.*|Repository|Root|Tag|Template|composer\.(json|lock))$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
</IfModule>
</FilesMatch>
我已经改回来了,现在看起来还可以,但这里有什么问题?
答案 0 :(得分:1)
.htaccess:这里不允许
您的服务器配置必须允许您在.htaccess
中使用该指令http://httpd.apache.org/docs/2.2/mod/core.html#require说,
覆盖:AuthConfig
这意味着AllowOverride
需要包含AuthConfig
或设置为All
,以便您能够在.htaccess上下文中使用Require
指令。
答案 1 :(得分:0)
“ Require”是AuthConfig指令的一种。您需要在httpd.conf中指定.htaccess中允许使用的指令类型。
<Directory DIRECTORY> ... AllowOverride AuthConfig </Directory>
此目录是.htaccess所在的目录。
请参见https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride