.htaccess 多语言(slug URL/友好 URL)[关闭]

Posted

技术标签:

【中文标题】.htaccess 多语言(slug URL/友好 URL)[关闭]【英文标题】:.htaccess mulitple language (slug URL/friendly URL) [closed] 【发布时间】:2014-02-09 14:20:25 【问题描述】:

我正在开发一个多语言网站。 对于 URL .com/business-industry/?parent_id=3&value=cars 它工作得很好。 这将使 URL .com/business-industry/3/cars 但该网站也有 .com/nl/ 和 .com/de/ 我已将下一个规则添加到 .htaccess。 第一个有效,但 /nl 和 /de 的第二个和第三个无效。

例如,第二个必须来自 .com/nl/business-industrie/?parent_id=3&value=cars 到 .com/nl/business-industrie/3/cars

RewriteEngine On
RewriteRule ^business-industry/([0-9]*)/(.*)/?$ /index.php?business-industry=1&parent_id=$1&value=$2 [NC,L]

RewriteRule ^nl/business-industrie/([0-9]*)/(.*)/?$ /index.php?business-industrie=1&parent_id=$1&value=$2 [L]

RewriteRule ^de/business-branche/([0-9]*)/(.*)/?$ /index.php?business-branche=1&parent_id=$1&value=$2 [NC,L]

非常感谢您的帮助。

提前致谢。

【问题讨论】:

对于所有语言,“/index.php?business-industrie=1”是否总是等于“1”?一个没有重写的工作站点的链接会很有帮助...... 这个问题似乎是题外话,因为它是关于 SEO 这些人应该在哪里发布他们的问题? @Sumurai8 Mod_rewrite 问题属于专业网站管理员,seo 问题也是如此。不管你怎么看,这个问题在这里都是题外话。 这与编程无关,更多与路由 URL 相关,Webmasters SE 【参考方案1】:

用这条规则替换你的 3 条规则:

RewriteEngine On

RewriteRule (?:^|/)(business-[^/]+)/([0-9]+)/([^/]*)/?$ /index.php?$1=1&parent_id=$2&value=$3 [NC,L,QSA]

【讨论】:

您好,感谢您的回复!此规则仅适用于 int 站点,不适用于 /de。即使我将第二条规则更改为 RewriteRule (?:^|/)business-branche/([0-9]+)/([^/]*)/?$ /index.php?business-branche=1&parent_id= $1&value=$2 [NC,L,QSA] 立即尝试更新代码。 万一更新的代码不起作用,我认为可以完成任务(多一个参数): RewriteRule (?:^|/)(business-[^/]+)/ ([0-9]+)/([^/]*)/?$ /index.php?$1=1&parent_id=$2&value=$3 [NC,L,QSA] @Minister:非常感谢,我编辑了代码以反映该建议。 其实 OP 之前从未告诉过 WP 的存在。仅出于测试目的,首先尝试在上面的答案中添加 R 标志,以查看所需的 URL 是否是此规则的结果,并且它正在加载正确的内容。试试这个规则:RewriteRule (?:^|/)(business-[^/]+)/([0-9]+)/([^/]*)/?$ /index.php?$1=1&parent_id=$2&value=$3 [NC,L,QSA,R]

以上是关于.htaccess 多语言(slug URL/友好 URL)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess 多语言网站规则

.htaccess 重写友好的 URL

我想在不使用 slug 的情况下使 PHP seo 的博客 URL 变得友好

htaccess 带有子目录的多语言站点,默认为 301

做一个友好的多语言网站

使用 ASP.NET MVC 的多语言网站