将多个URL映射到同一页面

时间:2011-11-20 作者:Umesh Awasthi

我刚刚看到这个页面,它的要求和我的几乎一样

Multiple endpoints to same page

我必须实现相同的功能,但我也想将一些参数传递到所有这些URL都将映射到的页面。说出示例

http://mysite.com/test/link1
http://mysite.com/test/link2 
http://mysite.com/test/link3 
我想将它们映射到相同的URL

http://mysite.com/test/finalDestination
同时,我还想发送一些其他参数,如

用户电子邮件

  • 用户名
    1. ,以便我可以在该页面上使用它们来进行自定义逻辑。我知道如何在JSP/Java中实现这一点,我可以在POST请求中将它们作为请求参数发送,并可以在最终的JSP中重新体验它们

      我如何实现这一点是使用php的wordpress。我的建议是不要使用任何查询字符串。

      或者如果我用like创建URL

      http://mysite.com/test/user1
      http://mysite.com/test/user2 
      http://mysite.com/test/user3
      
      其中可以从数据库中提取user1等,我们可以通过应用程序确保它们是唯一的,并将这些URL映射到相同的端点。如何在最后一页中获取用户名?

      提前感谢

    3 个回复
    最合适的回答,由SO网友:Rutwick Gangurde 整理而成

    你可以使用与你提到的问题相同的答案(我已经回答了)。下面是如何更改以传递参数:

    <?php
        add_action(\'init\', \'add_my_rule\');
    
        function add_my_rule()
        {
            global $wp;
            $wp->add_query_var(\'args\');
    
            add_rewrite_rule(\'test\\/finaldestination\\/(.*)\',\'index.php?pagename=about&args=$matches[1]\',\'top\');
        }
    ?>
    
    假设“finaldestination”始终保持不变,并且页面名(slug)为“about”(您可以同时更改两者)。将自定义模板应用于此页面,并在模板上执行以下操作:

    //if you visit http://.../test/finaldestination/name/romeo, then $params will be name/romeo. You can explode this and get the value.
    $params = get_query_var(\'args\');
    
    将此代码放入文件后,只需转到Settings>Permalinks 然后点击保存按钮。我没有尝试过这个,但在最近的一个项目中使用了类似的东西,我相信它会起作用。

    SO网友:Martin Zeitler

    只需确保在重复页面的标题中添加一个规范URL,引用页面的主实例。。。否则,你最终会得到重复的内容,这对SEO是有害的(只有当这些页面是公开的和索引的时才重要)。

    也会选择主题的作者。php或permalink%author%,以防它是WordPress的普通用户。您可以访问以下数据:

    $author = get_user_by(\'slug\', $author_name);
    $author_id = (int)$author->ID;
    $name = $author->first_name.\' \'.$author->last_name;
    

    WP Codex: get_user_by()

    SO网友:IFightCode

    如果你的话对我有正确的意义,可能的解决方案如下:

    对于第一部分,您可以使用WordPress Redirection 插件可以轻松满足您的需求。

    对于第二部分,您可以对永久链接结构使用%author%。退房codex.

    结束

    相关推荐

    Changing attachment urls?

    如何更改附件页URL的格式/[post-url]/[attachment-name]/ 到/media/[attachment-name]/? 我知道我可以覆盖get_attachment_link 通过attachment_link 过滤器,但我想我需要更改重定向结构,以便WordPress知道如何处理这些URL?