我的网站是关于新闻,我有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
有什么办法吗?
1条答案
按热度按时间gstyhher1#
我有一个想法,一个解决方案,也许不是最好的,但我只是在主机中创建了子域,每个子域都有自己的.htaccess文件,所以我只是像这样链接用户
他们更改语言,然后我使用相同的规则,只是更改每个子域的语言。htaccess