wordpress - .htaccess rewriterule 不工作(wordpress)
问题描述
我在这里迫切需要一些帮助。关于这个问题,我已经把头发拉了一个多星期了。我知道它应该非常简单,但由于某种原因它不起作用......
我有一个搜索查询,出于美学和 seo 的原因,我想让它看起来很漂亮。我希望 /rentals 在内部重定向到(丑陋的)查询 /?ct_ct_status=for-rent&search-listings=true。在这里澄清一下,我希望访问者不要注意到当他们访问 /rentals 时,他们实际上被重定向到查询。
无论如何,我尝试了以下方法:
RewriteEngine On
RewriteBase /
RewriteRule ^rentals/?$ https://www.example.com/?ct_ct_status=for-rent&search-listings=true [L]
现在这里的 example.com 显然不是实际的 url。我已经尝试了上述方法以及它的许多细微变化,包括:只有查询而不是完整的 url;不同的旗帜;有和没有 RewriteEngine On;有和没有 RewriteBase;尝试不重定向到查询,而是重定向到常规页面;可能还有一些我忘记的其他事情。
现在还值得一提的是,这个网站是在 Wordpress 上运行的。上面的 rewriterule 放在 .htaccess 中 Wordpress 的部分上方,但这也不起作用。
如果您希望我提供更多信息,请告诉我!
谢谢您的帮助!
编辑: 回答@msg 问题:我应该在最初的问题中提到这一点。上面提到的 RewriteRule 会重定向到正确的页面。但是,它是外部重写。换句话说,当访问 /rentals 时,它会重定向到https://www.example.com/?ct_ct_status=for-rent&search-listings=true,但它会将重定向显示为 url,因此不会将 /rentals 显示为网址。目标是使其成为内部重写,以便当有人访问 /rentals 时,它实际上将 /rentals 显示为 url,而不是重定向。
我还尝试了 [R] 标志,Apache 的网站说这是用于内部重写的正确标志:link。但这仍然会导致外部重写。
查询不由 Wordpress 处理。处理主页的 PHP 文件检查是否存在搜索查询,如果存在,则显示处理搜索结果的 PHP 文件的输出。
回答@shane 问题:我对上述@msg 问题之一的回答也可能有助于回答您的问题。但进一步扩展,租金实际上不是自定义帖子类型。它是一种称为“列表”的自定义帖子类型的分类法。
function add_custom_rewrite_rule() {
add_rewrite_rule('^rentals/?$', 'https://www.redcapper.com/?ct_ct_status=for-rent&search-listings=true', 'top');
}
add_action('init', 'add_custom_rewrite_rule', 10, 0);
我曾尝试使用上述方法连接到 Wordpress 的重写 API,但它不起作用......它给了我一个 404 错误......
解决方案
WordPress URL 的重写不应在 .htaccess 中完成 - WordPress 本身实现了它自己的重写引擎。
所有重写都应使用此 API 完成。请参阅add_rewrite_rule。
编辑
试试这个...
function add_custom_rewrite_rule() {
add_rewrite_rule('^rentals/?$', 'index.php?ct_ct_status=for-rent&search-listings=true', 'top');
}
add_action('init', 'add_custom_rewrite_rule', 10, 0);
推荐阅读
- java - Android:自定义键盘可以记录用户输入的文本吗?
- docker - SSH 配置文件端口转发在 Docker 中未按预期工作(撰写)
- oracle - 为什么 oracle '使用 NCHAR_CS' 不能处理扩展的 ASCII 字符
- python - python中列的并行处理
- java - Android:如何将列表视图保存在根目录中
- python - 如何使用 tf.data 的可初始化迭代器和可重新初始化的迭代器并将数据提供给 estimator api?
- azure - 在哪里下载 WindowsAzureSDK 1.8
- lwjgl - LWJGL 3D 纹理被拉伸
- angular - 如何在角度 5 处为拦截器添加错误缓存?
- mysql - SQL:如何从第一张表上的第二张表中获取总计数?