【发布时间】:2015-01-06 12:50:58
【问题描述】:
已经在家里到处找这个了 - 已经阅读了许多 htaccess 问题等 - 但似乎仍然无法让它发挥作用。
我在var/www 安装了一个 WordPress 网站
我想让一个特定的 URL 指向一个特定的页面。从浏览一些 WordPress 插件开始。它们都不起作用,所以我直接找到源代码并开始编辑 WordPress 安装根目录中的 .htaccess 文件。这就是它开始令人沮丧的地方。
.htaccess 文件的众多尝试之一:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymLinks
Redirect 301 /redirect-me http://my-wordpress-site/?page_id=15
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
所有重定向尝试都导致 404 Not Found 错误。
我已经断言了以下几点:
- Apache2 重写模块已启用
-
www-data对.htaccess文件具有读写权限。 -
AllowOverride在目录的apache2.conf文件中设置为All
这里有一个重要线索:在我的 .htaccess 文件中交换最后一个 ReWrite 规则对我的 WordPress 网站完全没有任何作用...
RewriteRule . /poo.php [L]
对于调试失败的.htaccess 文件还有其他建议吗?
【问题讨论】:
-
您可以访问 Apache 安装的错误日志吗?
-
令我惊讶的是,当您替换 WP 的主要规则时,没有任何变化。你确定这是 WP 使用的那个吗?
-
@JustinIurman 这也是让我感到惊讶的地方。到那时,调试非常绝望。当您说 WordPress 使用“使用”时,如果您的意思是:WordPress 推荐的默认重写规则,那么是的。但它显然根本没有被“使用”。
-
@vicvicvic 不幸的是,服务器日志的权限非常严格。
-
抱歉,我的意思是
used(由 服务器 执行)(htaccess 已启用并位于好文件夹中)。你说:Apache2 Rewrite Module is enabled。但我认为事实并非如此。这可以解释为什么Redirect不会发生(如果由于IfModule条件而启用了mod_rewrite,您的代码将仅执行)。要对其进行测试,请尝试将Redirect 301line outside ofIfModuleblock condition
标签: php wordpress apache .htaccess mod-rewrite