FreeBSD 服务器 .htaccess 问题

FreeBSD 服务器 .htaccess 问题

服务器详细信息:

FreeBSD PHP 版本 4.3.11 Apache

Appache 模块:

mod_throttle、mod_php4、mod_speedycgi、mod_ssl、mod_setenvif、mod_so、mod_unique_id、mod_headers、mod_expires、mod_auth_db、mod_auth_anon、mod_auth、mod_access、mod_rewrite、mod_alias、mod_actions、mod_cgi、mod_dir、mod_autoindex、mod_include、mod_info、mod_status、mod_negotiation、mod_mime、mod_mime_magic、mod_log_config、mod_define、mod_env、mod_vhost_alias、mod_mmap_static、http_core

我遇到的问题是,每当我在 .htaccess 文件中写入任何类型的代码时,它都会引发 500 内部错误

我只是想重写 url,并使用 wordpress 为我创建的精确代码,甚至尝试过以前在以前的服务器上使用过的自定义代码,但仍然不起作用。

WordPress 创建代码:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /lobster-tail-blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /lobster-tail-blog/index.php [L]
</IfModule>

# END WordPress

即使像这样简单的事情也会引发错误:

<IfModule mod_rewrite.c>
    RewriteEngine On
</IfModule>

有人知道修复方法或为什么会导致此错误吗?我已经加载了 mod_rewrite 模块

答案1

我首先想到的是,.htaccess不需要这些位。你.htaccess应该只需要

RewriteEngine On
RewriteBase /lobster-tail-blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /lobster-tail-blog/index.php [L]

在其中。如果失败了,会写入什么httpd-error.log

答案2

检查 AllowOverride 指令,可以根据目录上下文进行配置,例如 AllowOverride All 应将其设置为 AllowOverride FileInfo 以允许 mod_rewrite(参考:http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride

答案3

尝试指定:

<IfModule mod_rewrite>
    # your settings
</IfModule>

因此没有 .c 位

答案4

嗯...你确定是 500 而不是 403 吗?如果 .htaccess 文件上的权限错误,Apache 将拒绝所有带有 403 的请求。

相关内容