首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用.htaccess生成扩展缩写代码的漂亮URL

使用.htaccess生成扩展缩写代码的漂亮URL
EN

Webmasters Stack Exchange用户
提问于 2017-05-24 10:06:31
回答 1查看 121关注 0票数 1

是的,我知道,有很多这样的问题,但是我找不到一个能解决我的问题,所以我会以被否决的代价再次问这个问题。即使是一个重复的链接也可以帮助我。

这是我以前从未做过的工作,我有这样的URL demo.html?code=IT-ROM-FCO,其中:

  • IT是“意大利”的国际航空运输协会代码
  • ROM是国际航空运输协会“罗马”的代码
  • FCO是国际航空运输协会"Aeroporto di Roma Fiumicino“的代码。

我必须重写上面的URL以像这个airports/italy/rome/aeroporto-di-roma-fiumicino那样显示,结果的字符串来自于一个API服务。

我知道简单的重写来将products.php?id=7更改为products/7,但我从未完成过这样的任务(获取URL -在PHP /给定代码中检索一些数据-“漂亮”打印新的URL)

由于我真的不知道如何完成这项工作,我没有代码示例,对不起。

EN

回答 1

Webmasters Stack Exchange用户

回答已采纳

发布于 2017-05-24 15:11:57

我建议将代码保存在URL中。这样做有一些好处:

  • 代码很容易保持静态。地名往往会随着时间的推移而改变。如果存在代码,则不必保存旧名称的记录,并根据旧名称实现重定向。
  • 当web应用程序所需的数据在URL中时,很容易重写。.htaccess不适合查找表。将2.5万条规则写入.htaccess将是一个性能杀手。

我建议使用像:/IT-ROM-FCO/airports/italy/rome/aeroporto-di-roma-fiumicino这样的URL,您可以使用以下重写规则将代码放入参数中并删除段塞:

代码语言:javascript
运行
复制
RewriteRule ^/?([A-Z]+-[A-Z]+(-[A-Z]+)?).* /demo.html?code=$1 [L]

这将接受任何在开头有两个或三个缩写的URL,并将它们放入代码参数中。这应该支持您在注释中提到的code=IT-ROMcode=IT-ROM-FCO案例。

然后,当您在站点上生成URL时,将漂亮的版本放在hrefs中:

代码语言:javascript
运行
复制
<a href="/IT-ROM-FCO/airports/italy/rome/aeroporto-di-roma-fiumicino">

您还需要“规范化”您的URL。然后,URL /IT-ROM-FCO/foo-bar将显示相同的内容。通过使用带有漂亮URL的页面头部的meta链接rel规范标记来解决这一问题可能是最简单的。这将告诉谷歌哪个版本是你最喜欢的URL。

代码语言:javascript
运行
复制
<link rel="canonical" href="https://example.com/IT-ROM-FCO/airports/italy/rome/aeroporto-di-roma-fiumicino">
票数 2
EN
页面原文内容由Webmasters Stack Exchange提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://webmasters.stackexchange.com/questions/106557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档