Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess:此处不允许重写引擎_.htaccess_Mod Rewrite_Apache_Httpd.conf - Fatal编程技术网

.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

我将.htaccess上载到服务器,并收到一个错误500(内部服务器错误)

在错误日志中,我有以下错误:

...htaccess:此处不允许重写引擎

但是
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中允许htaccess
AllowOverride
控制可在
.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