我希望我的网站指向任何URL
website.com/about/
website.com/about/more/
转到主页。但是,我也希望在浏览器URL栏中维护URL。我怎样才能做到这一点?
重定向可以通过以下方式实现
RewriteRule .* / [L,R=301]
我试过了RewriteRule .* / [L,NC]
但是wordpress会显示页面/关于/而不是忽略URL,只显示主页。我希望我的网站指向任何URL
website.com/about/
website.com/about/more/
转到主页。但是,我也希望在浏览器URL栏中维护URL。我怎样才能做到这一点?
重定向可以通过以下方式实现
RewriteRule .* / [L,R=301]
我试过了RewriteRule .* / [L,NC]
但是wordpress会显示页面/关于/而不是忽略URL,只显示主页。将此代码添加到functions.php
您(子)主题的文件或作为插件-
add_action( \'init\', \'wpse_393237_add_any_endpoint\' );
function wpse_393237_add_any_endpoint() {
add_rewrite_endpoint( \'.*\', EP_ALL );
}
请注意,如果看到404错误,可能需要刷新重写规则。(只需保存永久链接就可以了)参考号:https://developer.wordpress.org/reference/functions/add_rewrite_endpoint/
我假设您计划替换Wordpress用于在每个URL处提供查询对象和正确模板的本机机制。我必须说,我不认为这样做有什么意义,因为你会失去Wordpress为让我们的生活更轻松所做的许多事情。您必须编写自己的代码来处理每个场景,例如404。也许Wordpress不是你想要的最理想的工具。
无论如何,如果我想这样做,我可能只会添加一个重写规则(通过插件,而不是在.htaccess上),将域中的任何URL指向索引:
function prefix_rewrite_rules(){
add_rewrite_rule(
\'.*\',
\'index.php\',
\'top\' //Places it as the prioritary rewrite rule
);
}
add_action( \'init\', \'prefix_rewrite_rules\' );
正如另一个答案所指出的,您正在添加重写规则,因此必须访问Settings > Permalinks 页面,以便Wordpress刷新重写规则并包含此规则。(与另一个答案的评论相反,您只需访问页面。无需单击“保存更改”)。在我的previous post, 我问过如何301重定向所有.com/language/X URL到.com/members/?members_search=X 使用htaccess。谢天谢地,我得到了帮助,解决办法是RewriteRule ^language/(.*) /members/?members_search=$1 [R=301,L]我刚刚发现,我还需要将任何现有连字符转换为空格。我假设不会有超过2个连字符。测试用例http://example.com/language/american-en