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

时间:2013-01-12 08:05:37

标签: wordpress apache .htaccess permalinks xampp

我真的很厌倦了。我已经尝试了所有东西以获得我非常永久的链接,但我仍然最终得到500或对象未找到的消息。我仍然试图让它在当地环境中工作。我在我的http.conf文件和我的http-xammp.conf文件中设置了覆盖设置为全部,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:此处不允许使用RewriteEngine,引用者:http://www.mydomain.com/xampp/wordpress/wp-admin/options-permalink.php

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

2 个答案:

答案 0 :(得分:4)

您获得的错误意味着未启用正确的覆盖。 Htaccess文件“覆盖”配置文件定义的设置,配置文件中的AllowOverride指令确定htaccess文件可以覆盖的设置类型。正如您所看到的in the Apache mod_rewrite documentation覆盖的每个指令都有一个列表,这意味着您需要在配置中设置它。

在您的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

答案 1 :(得分:2)

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