将国家/地区附加到“漂亮的”URL,但提供相同的页面

时间:2019-06-07 作者:Josh

对于我网站上的一个特定页面,我想将国家添加到URL。这样做的原因纯粹是为了美观,因此客户知道该页面上的价格是以他们自己的货币表示的,他们的货币名称/符号与其他货币相同,例如美元、澳元、新西兰元等

所以URL应该是example.com/signup/nzexample.com/signup/au/. 每个signup/<countrycode>/ 然后显示相同的页面(example.com/signup/) 它处理逻辑以显示用户所在国家/地区的正确价格/货币。如果主页上也有/<countrycode>/ 还附加了,但不想将其附加到整个站点(在此阶段)。

在阅读了大量关于这方面的文章后,我有几个与此相关的问题。

我想我应该add_rewrite_rule 为了实现这一点,这是否正确?我尝试了几种组合,并直接导航到/signup/nz/ (例如)只显示404页(当我更新rewrite\\u规则时,我正在保存永久链接)。我主要尝试的规则来自https://wordpress.stackexchange.com/a/252843 我将其更改为以下内容:add_rewrite_rule(\'^signup/([^/]*)/\',\'index.php?pagename=signup&country=$matches[1]\',\'top\'); 也尝试过add_rewrite_rule(\'^signup/([^/]*)/\',\'index.php?pagename=signup\',\'top\');

当页面本身被导航到时,如何让站点自动附加此内容?e、 g.如果我在主页上,单击注册按钮,我是否需要在主页上定位客户,并更新注册按钮的href以显示客户位置(例如,说链接是signup/nz/signup/gb/) 或者这是在页面中以某种方式完成的?

根据我所做的阅读,如果以上是正确的方法,我相信这样做可能会导致SEO的重复内容等问题。我想我可以通过在注册页面中添加规范名称来解决这个问题。我的想法正确吗?

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

如果您需要为单个页面编写一条重写规则,那么这段代码应该可以满足您的需要。您需要将该代码段中的XXXX替换为您的帖子IDsignup

function signup_pg_rewrite_rule() {
  add_rewrite_rule(\'^signup/([^/]*)/?\',\'index.php?page_id=XXXX&country_code=$matches[1]\',\'top\');
}

add_action(\'init\', \'signup_pg_rewrite_rule\', 10, 0);
你把这个放进去之后,you\'ll need to flush that rewrite rule array 存储在数据库中。最简单的方法是登录到WP,然后单击底部的“设置”>“永久链接”,然后单击“保存更改”按钮。这将刷新该数组并为您重写。无论何时更改重写规则数组,you will always need to flush it.

此外,正如您避免的那样,您需要在特定页面上设置一个规范标记,否则您将被标记为重复内容。如果您使用的是Yoast,那么它中有一个规范字段,很容易使用。如果你想总是附加一个国家代码,那么你需要确定一个URL。不可能只是/signup/ 因为那总是301或302到\'/signup/country/. (假设我正确理解你)

至于在用户出现时自动重定向页面,您需要编写一些逻辑来检查URL是否已附加。如果没有,那么您可以将用户移动到您想要的页面。有几种方法可以做到这一点,但可能只是使用parse_url$_SERVER 会把你带到那里。如果你需要一些帮助,只需在下面留言。

if(url_has_not_been_appended){
  // Get the Country Code you want
  // Then get your current URL
  // Then let\'s redirect the user
  wp_redirect( $url.\'country_code/\', 301 );
  exit;
}
希望有帮助!!

相关推荐

迁移后永久链接不起作用-AllowOverride All、htAccess设置

我束手无策,我把一个网站迁移到了另一台服务器上,经过多次设置,我终于在它工作的地方找到了它——有点像。永久链接已损坏,并抛出无法找到站点的错误。在httpd内部。conf I设置正确的(我认为)设置:<Directory /opt/wordpress> Options Indexes FollowSymLinks MultiViews AllowOverride All </Directory> htaccess存在,可由WP写入# BEG