【发布时间】:2017-11-25 21:00:44
【问题描述】:
我知道这个问题已经被问过很多次了,但我没有找到任何可行的解决方案或示例来解决我的问题。
我一直在开发客户网站。有两个类似的网站,一个是针对本国的,第二个是针对其他国家/地区的访问者的。
他们的主站点托管在服务器的根目录中,第二个站点托管在子文件夹中。
现在我想要的是对第二个站点进行动态 URL 重写,该站点托管在带有访问用户国家代码的子文件夹中。
例如
http://example.com
http://example.com/subfolder/
是网址。
我希望将这个http://example.com/subfolder/ 更改为这个http://example.com/country_code/,其中country_code 是通过PHP 函数获取的ISO 格式的访问者国家代码。
因此,如果用户来自美国,则必须将subfolder 更改为us,新的URL 现在应该是http://example.com/us/。
我希望它适用于所有类型的页面,无论是页面、帖子、类别、标签还是作者页面。
再说一遍,http://example.com/subfolder/any-type-of-url/ => http://example.com/country_code/any-type-of-url/
记住 country_code 是 ISO 格式的用户/访问者国家代码。
如果有人需要这方面的更多信息,请告诉我。提前致谢。
PS:我尝试使用 WP 中的add_rewrite_rule() 函数来实现这一点。
【问题讨论】:
-
如何在 htaccess 中获取国家代码?
-
@SagarV 我没有在
.htaccess文件中获取国家代码,我有PHP 函数,顺便说一句,我也可以在.htaccess文件中获取国家代码,请参阅答案here跨度> -
他们真的会为每个单独的国家/地区托管同一个站点吗?为什么不使用 qTranslate X 或 WPML?您可以完全按照描述在那里进行 URL 重写。
-
@Blackbam 他们没有托管多个站点,该站点旨在为多个国家/地区用户提供服务。清楚地阅读我的问题,它说我想用访问者国家 ISO 代码重写子文件夹。如果我使用 qTranslateX 或 WPML,它不会用国家 ISO 代码重写子文件夹,它只会附加到子文件夹,例如 /subfolder/in/。顺便说一句,在我们的案例中不需要翻译插件。我希望它现在清楚了。
-
主机中的文件夹名称可以任意命名,例如“子文件夹”,访问者应该能够使用各自的国家代码访问该站点。示例:example.com/us/blog & example.com/in/blog 这两个 URL 都将调用 example.com/subfolder/blog。如果我错了,请纠正我?
标签: php wordpress .htaccess url url-rewriting