2

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

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

4

2 回答 2

4

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

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

AllowOverride FileInfo

或者

AllowOverride All

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


编辑:

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

查看Apache 文档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.

于 2013-01-12T08:17:01.983 回答
2

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

于 2013-01-24T13:23:16.183 回答