繁体   English   中英

.htaccess apache URL重写

[英].htaccess apache URL rewriting

我已经执行了多次搜索,但还没有找到我想要的东西。

我需要执行一些URL重写,但是我没有编写重写代码的专业知识。 我刚刚开始学习正则表达式和Apache URL重写。

进入问题。 我想使用这些重定向的网站是.com域,因此用户将来自多个国家。 网站上有一个在线商店。 在初始目标网页上,您可以选择您所在的国家/地区,然后转到

www.domain.com/*country*/

那里有网上商店。

现在,这变得复杂了。 根据用户单击的国家/地区,我想在他们单击产品并进入商店后将这些国家/地区名称附加到URL。

E.G "www.domain.com/*country*/*product-category*/

目前,当您在选择国家/地区后点击产品时,

www.domain.com/*product-category*/

该网站正在运行Wordpress。 不知道需要什么其他信息。

多谢你们!

如果您可以控制该在线商店实施的实施,那么一个解决方案可能非常简单:正如您所说,您必须确保从该商店发出的所有网址都可以,因此这些网址可以在商店导航中单击/选择,然后进行内选择的国家/地区代码。 由于首先是使用该信息调用商店的,因此该信息是可用的,并且实际上非常容易使用,这是您描述基本URL的结构的方式: www.domain.com/*country*/ 易于使用,因为国家/地区代码是商店基本URL的一部分,而不是必须以显式方式处理的一些任意参数。 因此,您所需要做的就是:使商店在发送给客户的所有URL中使用相对链接。 相对链接只是相对路径(因此,路径中没有前导斜杠( / ))。 浏览器通过在当前加载页面的基本URL之前添加完整的URL来处理相对链接。 因此,根据您的情况,这意味着:

  • 基本网址: www.domain.com/*country*/
  • 相对链接: product/123456/action/buy (仅作为示例)
  • 浏览器组成的url: www.domain.com/*country*/product/123456/action/buy

这正是你想要的东西:你不必处理/在显式地指定国家或地区代码,但它包含在所有的URL。 您“只是”必须确保您因此在该商店实现中使用了相对链接。

旁注:通常,相对于绝对链接或url,应该始终首选相对链接,因为它使实现保持灵活,可重定位和可移植。 仅对外部目标的引用应编码为url。

其他方法可能是这些:

  • 通过路由所有请求,将该“着陆页”用作在线商店的请求中继。 这意味着您在路由/重写过程中输入了脚本级别,因此手边有更多方法。 具体来说,您可以在路由级别使用php会话。
  • 更改该基本网址的结构:使用虚拟主机代替网址路径来编码所选国家/地区,因此域名应为mozambique.domain.com或spitzbergen.domain.com。 尽管所有虚拟主机共享同一安装,但是现有实现很可能会自动考虑域名。
  • 在重写过程中考虑每个传入请求的“引荐来源网址”。 这实际上很容易实现,但恐怕并不是所有浏览器都真正安全,因为这依赖于所有请求中存在http Referrer标头,而该标头很容易被阻止。 同样在那种情况下,深的网址会导致错误,因为所需的信息只是丢失了。
  • 通过javascript即时更改url目标。 这样做的好处是,除了在标头中引用单个脚本文件之外,您无需在shops实现中进行任何更改。 该脚本包含更改用户发起的所有脚本或表单提交的目标URL的代码。 但是同样,就像在以前的方法中一样,这似乎并不可靠,因为它需要使用可能在客户端禁用的javascript。 在另一方面,这并不意味着它是不安全的(是安全的并且是健壮的是两个不同的东西),因为缺少国家代码不成立风险,它只是导致了必须要处理的错误。

在wordpress中,有一个永久链接选项可以声明自定义网址。 它易于使用,但我不确定您的情况。

暂无
暂无

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

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