mysql 不同语言的网站上seo友好插件的Htaccess规则

wljmcqd8  于 2022-10-31  发布在  Mysql
关注(0)|答案(1)|浏览(128)

我的网站是关于新闻,我有3种不同的语言供我的用户选择:英语、西班牙语和德语。
我设法修复了.htaccess,使其只适用于英语新闻,而不适用于其他语言,使用了SEO友好的url(slugs),方法如下
目录:默认情况下,主页会将所有用户重定向到

English: example.com/english/index.php

如果用户选择西班牙语或德语,他们只会得到另一个这样的文件夹

Spanish: example.com/spanish/index.php

或者如果他们选择德语,他们会转到这样的德语文件夹

German: example.com/german/index.php

现在,当用户单击英语文件夹中的news时,他们将获得一个SEO友好的URL,该URL使用存储在MySQL中的slugs并使用.htaccess访问如下地址

example.com/english/worldnews/this-is-a-nice-url

真实的地址对用户显然是隐藏的,但它是以下地址文件:

example.com/english/news.php

现在,.htaccess中用于使其工作的代码是以下代码

RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+)$ english/news.php?article=$1
RewriteRule ^([a-zA-Z0-9-/]+)/$ english/news.php?article=$1

问题是,当人们使用西班牙语或德语(文件夹)语言时,他们总是被重定向到英语新闻

english/news.php

链接slug来自MySQL,链接方式如下

<a href="<?php echo $row['seo_link'];?>"><?php echo $row['title'];?></a>

在数据库中,链接的存储方式如下:

worldnews/this-is-a-nice-url

有什么办法吗?

gstyhher

gstyhher1#

我有一个想法,一个解决方案,也许不是最好的,但我只是在主机中创建了子域,每个子域都有自己的.htaccess文件,所以我只是像这样链接用户

es.example.com
en.example.com
de.example.com

他们更改语言,然后我使用相同的规则,只是更改每个子域的语言。htaccess

RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+)$ english/news.php?article=$1
RewriteRule ^([a-zA-Z0-9-/]+)/$ english/news.php?article=$1

相关问题