如何使用htAccess重写编程生成的页面的链接结构

时间:2019-09-16 作者:Aditya Agarwal

我的网站使用了一个插件Easy Digital Downloads,它可以创建url结构的产品,sitename/downloads/{Product} 我想把它们改成sitename/{product}

例如https://milyin.com/downloads/steve-jobs-reality-is-malleable/ 是我的产品之一,我想让它出现在https://milyin.com/steve-jobs-reality-is-malleable/

为此,他们提供了改变slug的能力define(\'EDD_SLUG\', \'my-downloads-slug\'); 通过php,在这个用例中,我可以将其更改为其他内容,但不能为空,默认的slug是downloads 我不想要鼻涕虫,所以把它变成空白,这不起作用。

我尝试过使用htaccess,但我也遇到了问题。我试过这个:RewriteRule ^downloads/(.*)$ $1

但它没有影响,我的链接保持不变,所以请帮我重写它们

1 个回复
最合适的回答,由SO网友:Justin Sternberg 整理而成

您希望从url中完全删除post类型的slug。这记录在this answer. 请记住,在对post URL进行任何更改后,您应该重新保存永久链接结构,以使更改完全生效。

Edit:您还可以通过以下方式从旧位置(使用slug)重定向:

function na_redirect_slug_requests() {
    $post = get_queried_object();

    // If our custom-post-type
    if ( ! empty( $post->post_type ) && \'events\' === $post->post_type ) {
        $url = get_permalink( $post );

        // And the custom-post\'s url doesn\'t match the one we\'re looking at...
        if ( false === strpos( $url, $_SERVER[\'REQUEST_URI\'] ) ) {

            // Then let\'s redirect.
            wp_safe_redirect( $url, 301 );
            exit;
        }
    }
}
add_action( \'template_redirect\', \'na_redirect_slug_requests\', 10, 50 );
只需记住用自定义post类型的slug替换“events”。

相关推荐

如何让ToggleControl Gutenberg组件在PHP块中工作

我的一切都基于此:https://gist.github.com/pento/cf38fd73ce0f13fcf0f0ae7d6c4b685d 只是切换没有得到切换的视觉表示。有关于这个的教程吗?我发现的一切都是复杂的“真实的”阻止了大量的进口,而这种react风格返回了我现在不需要的东西。我只是想知道如何让开关工作。PHP<?php function register_gb_block() { // ... register_assets