服务器详细信息:
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 的请求。