繁体   English   中英

从Wordpress中的友好URL中删除页面名称

[英]Remove page name from friendly URL in Wordpress

我已经在Wordpress / Woocommerce中创建了一个自定义页面,该页面使用了网站模板。 我在网站的根文件夹中有一个动态php页面,该页面会生成指向我直接创建的自定义Wordpress页面的链接。 我想要的网址看起来像这样:

example.com/value1/value2.html

而不是我拥有的当前Wordpress网址是:

example.com/page_name/value1/value2

因此,从本质上讲,我希望我的URL不在URL中显示page_name,而在URL末尾带有.html。

在我的主题functions.php中,我添加了Wordpress Codex建议的两个函数。

我的职能是:

function custom_rewrite_tag() {
            add_rewrite_tag('%value1%', '([^&]+)');
            add_rewrite_tag('%value2%', '([^&]+)');
        }
        add_action('init', 'custom_rewrite_tag', 10, 0);

function custom_rewrite_rule() {
            add_rewrite_rule('^page_name/([^/]*)/([^/]*)/?','index.php?page_id=3090&value1=$matches[1]&value2=$matches[2]','top');
        }
        add_action('init', 'custom_rewrite_rule', 10, 0);

我没有在wp-admin中指定页面名称,但是在永久链接中确实有页面名称。 在查看其他类似问题时,我确实看到有人说不可能从url中删除页面名称,因为Wordpress / Woocommerce需要此作为指向它需要显示的页面的参考点。 这是真的? 我在Wordpress部分的内部和外部尝试了许多.htaccess规则的排列。

我已经设法通过将重写规则放在Wordpress块之外来重写php页面,但是我对如何随心所欲更改Wordpress URL感到有些困惑。

以前的工作学院给我留下了这个问题,这让我头疼,因为我必须找到解决办法。

**更新

在Joe(非常感谢)帮助我之后,我现在遇到了这样的情况,我的最终URL看起来像这样:

https://example.com/page_name/value1/value2.html

但是我仍然需要/ page_name /从网址中删除。 其他人对在Wordpress / Woocommerce中如何实现这一目标有何建议?

您可以使用.htaccess轻松从您的URL中删除page_name

RewriteEngine On
RewriteRule ^page_name/(.*) /$1.html [R=301,L]

这将为您提供所需的URL,例如example.com/value1/value2 您可以在这里看到此工作。 这是使用301重定向完成的,该重定向是永久的,因此建议您在测试时将其更改为R=302

确保测试之前清除缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM