.htaccess:此处不允许重写引擎
我将.htaccess上载到服务器,并收到一个错误500(内部服务器错误) 在错误日志中,我有以下错误: ...htaccess:此处不允许重写引擎 但是.htaccess:此处不允许重写引擎,.htaccess,mod-rewrite,apache,httpd.conf,.htaccess,Mod Rewrite,Apache,Httpd.conf,我将.htaccess上载到服务器,并收到一个错误500(内部服务器错误) 在错误日志中,我有以下错误: ...htaccess:此处不允许重写引擎 但是mod_rewrite.所以启用了 那么,我需要改变吗 <Directory /> Options FollowSymLinks AllowOverride None </Directory> 您可以在.htaccess文件中使用类似的内容: Options All -Indexes Options
mod_rewrite.所以启用了
那么,我需要改变吗
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
您可以在.htaccess文件中使用类似的内容:
Options All -Indexes
Options +FollowSymLinks
RewriteEngine On
RewriteEngine on
RewriteCond $1 !^(index\.php|html|test)
RewriteRule ^(.*)$ /index.php/$1 [L]
这段代码仅仅意味着,任何不指向index.php、html或test的内容都应该指向index.php
希望这是有帮助的 假设您的文档根目录是/home/foo/web
,那么在httpd.conf文件中有以下配置:
<Directory "/home/foo/web">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
选项索引如下SYMLINKS包括ExecCGI
允许超越所有
命令允许,拒绝
通融
这应该考虑到重写引擎是不允许的
错误。您的.htaccess工作的最低配置:
AllowOverride FileInfo Options
允许所有配置也将起作用:
AllowOverride All
在httpd版本2.4(2.4.3和2.4.4)中,查看/etc/httpd/conf.d/wordpress.conf
以下有一个条目:
....
更改:
“允许超车选项”
到
“允许超越所有”
在wordpress.conf中,除了更改httpd.conf之外,还可以使用。在更改生效之前重新启动http服务器。尝试将Mac上/etc/apache2/users/username.conf
下的username.conf文件更改为
<Directory "/Users/akyoo/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
这对我来说很好。
此外,只需确保您正在编辑正确的配置文件即可。我在/etc/apache2/users/USERNAME.conf下创建了一个文件,但正在编辑/etc/apache2/httpd.conf
删除USERNAME.conf文件有效。这只是一个想法,这发生在我身上,我花了很多时间试图解决它
如果您有一个类似d:/web/my sites/some site/
然后将.htaccess
放在d:/web/my sites/some site/.htaccess
上(它应该在的位置)
如果在此目录之前有任何.htaccess
文件,Apache将读取该文件,并阻止整个路径的执行,从而产生内部服务器错误
例如:您有d:/web/my sites/.htaccess
在检查/var/log/apache2/error.log中的日志后,我从谷歌云实例中得到了此类错误
.htaccess:此处不允许重写引擎
要消除上述错误&500内部服务器错误,请执行以下简单步骤
sudo nano /etc/apache2/apache2.conf
然后添加这些行的片段
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
这为我解决了谷歌云实例上托管的500个内部服务器错误是的,这都是关于AllowOverride
指令的。不需要允许覆盖所有。。但至少AllowOverride FileInfo
。详细信息:这就是错误日志显示的全部内容吗?@linuxeasy是的。路径和.htaccess:此处不允许重写引擎。就这样。@lazyone,谢谢,我来试试。哦,我想我会用它的,谢谢!但我认为这并不能解决不允许重写引擎的问题。AllowOverride All wroked但AllowOverride FileInfo选项不允许,wp包括/.htaccess:deny not allowedhere@JacekKaniuk如何在1和1中允许htaccessAllowOverride
控制可在.htaccess
中使用的指令类型。因此,AllowOverride FileInfo Options
是否足够完全取决于您使用的指令FileInfo
,问题中的.htaccess
文件需要FileInfo选项
。要在.htaccess
中使用Deny
,还需要包含Limit
指令类型@Sérgio,但大多数只是坚持使用All
“易于使用”。然而,与此答案所暗示的相反,您不应该在
容器(如问题中所述)中设置除AllowOverride None
之外的任何内容,该容器指的是服务器根目录,特别警告不要这样做“出于安全和性能原因”。相反,这应该为包含.htaccess
文件的特定目录设置,例如@anubhava的回答中提到的文档根目录。我刚刚找到了一个解决方案,这仍然应该取决于您拥有AllowOverride
(以及Apache 2.4+上的AllowOverrideList
)设置。并且可能是Apache版本,因为AllowOverride
指令的默认值在Apache 2.2和2.4之间发生了更改。只需添加,仅在您特别需要时才启用MultiViews
。如果您使用mod_rewrite,如本例中所示,那么您可能不会-这可能会导致意外的冲突ts。
sudo nano /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
sudo service apache2 restart