WordPress 中的 .htaccess 错误:此处不允许重写引擎

Posted

技术标签:

【中文标题】WordPress 中的 .htaccess 错误:此处不允许重写引擎【英文标题】:.htaccess errors in WordPress: Rewrite Engine not allowed here 【发布时间】:2012-12-26 19:46:10 【问题描述】:

我真的受够了。我已经尝试了一切来获得漂亮的永久链接,但我最终还是收到了 500 条消息或未找到对象的消息。我仍在尝试让它在本地环境中工作。我在http.conf 文件和http-xammp.conf 文件中将 Override 设置为 all,FollowSymLinks 到位,这是我的.htaccess 文件:

Options -Indexes
Options +FollowSymLinks

# BEGIN WordPress

RewriteEngine On
RewriteBase /xampp/wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-l 
RewriteRule ^(.+)$ /?file_name=$1  [L,QSA]
RewriteRule ^([^/]+/[^/]+)/([^/]+)/([^/]+)(/.+)?$ $1$4?$2=$3 [QSA,N]
RewriteCond $1 !.+\.xyz$
RewriteRule ^([^/]+/[^/]+)$ $1.xyz [L]

# END WordPress

但我仍然会遇到错误!我是整个 htaccess 的新手,所以任何帮助都将不胜感激。

我现在得到的错误是:

“C:/xampp/htdocs/xampp/wordpress/.htaccess: 此处不允许重写引擎,引用者:http://www.mydomain.com/xampp/wordpress/wp-admin/options-permalink.php”

但我是管理员并且可以完全控制?有什么想法吗?

【问题讨论】:

我看到您今天创建了许多标签 wiki。 在逐字复制和粘贴文本时添加指向源的链接,否则您将抄袭文本。请参阅:***.com/review/suggested-edits/1394444#./…。 不是基于我提供的帖子的例子,或者this one,你没有。如果您复制文字,请cite it 请重新检查我的语义,我已包含参考 我在引用我的参考文献。 【参考方案1】:

您遇到的错误意味着未打开正确的覆盖。 Htaccess 文件“覆盖”配置文件定义的设置,配置文件中的AllowOverride 指令决定了哪些类型的设置可以被 htaccess 文件覆盖。正如你所看到的in the Apache mod_rewrite documentation,Override 的每个指令都有一个列表,这意味着你需要在配置中进行设置。

在您的 xampp 配置文件中的某处,您应该会看到 AllowOverride 指令。您可以将FileInfo 添加到该列表中,也可以将其更改为All

AllowOverride FileInfo

AllowOverride All

这应该允许您在 htaccess 文件中使用 mod_rewrite 指令。


编辑:

我应该把它放在哪里?我把允许覆盖无处不在

看看Apache docs for AllowOverride,你需要把它放在一个<Directory>容器中。所以是这样的:

<Directory "/path/to/your/xampp/wordpress">
    AllowOverride All
</Directory>

必须确保“/path/to/your/xampp/wordpress”是您的 htaccess 文件所在的绝对物理文件路径,而不是URI 路径(你在 URL 中看到的路径)。这意味着您的 htaccess 文件将位于 /path/to/your/xampp/wordpress/.htaccess

【讨论】:

@Rachel 你重启服务器了吗?您确定服务器配置中的其他地方没有其他 AllowOverride 指令吗? 是的!我还重新安装了 wordpress 和 xammp 并重新配置了文件!似乎没有任何效果! @RachelGallen 你确定AllowOverride 是在指向htaccess 文件所在目录(或父目录)的&lt;Directory&gt; 容器内吗? 这是我的目录的当前设置 选项索引 FollowSymLinks 包括 ExecCGI AllowOverride All Order allow,deny Allow from all Require all allowed 我应该删除引号吗? @RachelGallen 不,但这看起来不像您的 htaccess 文件所在的目录。您发布的错误是这样的:C:/xampp/htdocs/xampp/wordpress/.htaccess 不是C:/xammp/htdocs/wordpress,所以您没有'没有为导致错误的 htaccess 文件打开正确的覆盖。【参考方案2】:

我认为这里的问题是您在htdocs/xampp/ 文件夹中拥有该文件夹。如果我没记错的话,XAMPP 以某种方式设置了这个文件夹,这可能会导致问题。将 wordpress 文件夹移动到您的 htdocs 文件夹中,它应该可以正常工作

【讨论】:

我已经解决了这个问题,但感谢您的回答。 +1

以上是关于WordPress 中的 .htaccess 错误:此处不允许重写引擎的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在尝试访问此 WordPress 网站时收到此 403 Forbidden 错误?为啥它无法读取 .htaccess 文件?

apache_conf .htaccess跳过静态文件的WordPress 404错误处理

子域“m”。与 WordPress 和。 htaccess(在 htaccess 中的重写规则冲突。)

如何解决wordpress中的403禁止错误?

这是 WordPress 中的 .htaccess 代码。有人可以解释它是如何工作的吗?

根目录中的 Wordpress htaccess 覆盖子域中的 htaccess。子域应用程序现在无法运行