我有一个英语和西班牙语网站,每种语言都有自己的文件夹,例如:
news.com/en/ for English news.com/es/ for Spanish
最新新闻列表显示在以下位置:
news.com/en/latest-news.php for English news.com/es/ultimas-noticias.php for Spanish
当用户点击某篇文章阅读整篇文章时,他们会被链接以从这里阅读整篇文章(使用 MySQL 中存储的 slug),如下所示(例如):
news.com/en/general/news/europe/2022/10/22/this-is-a-nice-title
所有文章都使用以下页面来获取 slugs:
news.com/en/read-article.php for English news.com/es/leer-noticia.php for Spanish
在这些页面上,脚本查询 MySQL 以搜索 slug 并显示完整的文章。问题是由于某种我不明白的原因我没有得到任何结果。
如果我将文件移动到根目录:
news.com/read-article.php for English news.com/leer-noticia.php for Spanish
然后它工作正常,但是将这些文件添加到子文件夹中我没有得到任何结果。
重要的是,slugs 像这样保存在 MySQL 中:
general/news/europe/2022/10/22/this-is-a-nice-title
因为它们看起来比破折号更好,而且日期是发布日期,所以每篇文章都会发生变化。
这是我为这些子文件夹创建的 .htaccess 代码:
更新:问题仅出现在 htaccess 中,即使我回答了自己的问题,仍然没有完全解决
RewriteEngine On RewriteRule ^(en)/([a-zA-Z0-9-]+)$ /read-article.php?id= [L] RewriteRule ^(es)/([a-zA-Z0-9-]+)$ /leer-noticia.php?id= [L]
知道问题出在哪里吗?
对于那些寻求帮助的人,因为他们有同样的问题,而且我确信有很多:
我可以以一种非常幸运的方式修复它,但肯定不是专业的方式,这可能是错误的方式,但它是有效的。这个网站上有很多类似的问题没有答案,所以似乎一般人对htaccess的了解并不多。
我找到的解决方案是:
因此,您可以拥有多种语言的网站,每种语言都位于子文件夹中,但即使您只运行一种单一语言的网站并使用子文件夹,那么您肯定需要此帮助,只需运行此 . htaccess ,它会工作(显然用你的文件名编辑)
现在我们肯定需要阅读更多有关代码中 [L] 的内容,还有许多其他类似的代码:
我不明白以下命令,如果需要它们,但您寻求帮助肯定可以找到它,或者也许这里的一些人可以与我们分享知识:
没有其他人回答这个问题,这与大多数有关 .htaccess 和友好 URL 的问题相同,但这里至少有一些不专业的东西,但无论如何我分享一些小菜鸟知识,因为这是这个社区的主要思想,而不是每个人都是专业人士,但我们都可以分享知识。如果有更好的答案,我一定会将其标记为正确