php - 使用 htaccess 文件的多种语言的友好 php URL(从 URL 检测语言)

标签 php regex apache .htaccess mod-rewrite

我有一个多语言 php 脚本,它使用 URL 来检测应该为用户从模板文件夹加载哪些语言文件。

例如:

英文版:site.com/etc.phpsite.com/etc.php?lang=EN

阿拉伯语版本:site.com/etc.php?lang=AR

但我想要更漂亮且对 SEO 更友好的 URL。所以我需要通过更好的方式从 URL 中检测语言。

例如:

英文版:site.com/EN/etc.php

阿拉伯语版本:site.com/AR/etc.php

这可以通过 .htaccess 文件实现吗? (我在stackoverflow中搜索解决方案,但没有成功...)

谢谢 阿米尔

最佳答案

您可以在文档根目录 .htaccess 中包含这些规则:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+([^.]+\.php)\?lang=([^\s&]+) [NC]
RewriteRule ^ /%2/%1? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Z]{2})/(.+?)/?$ /$2?lang=$1 [L,QSA,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Z]{2})/?$ /?lang=$1 [L,QSA,NC]

关于php - 使用 htaccess 文件的多种语言的友好 php URL(从 URL 检测语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22307442/

相关文章:

apache - 无法使用 Apache 和 LDAP 对 Subversion 用户进行身份验证

java - 在 xsl-fo 文档中仅定义一次边框

php - 从 PHP 网站进行 Git checkout ?

javascript - 动态添加字段到 HTML 表单、发送数据并记住添加的字段和值

php - 将 1 美元除以 3 并调整 1 美分

PHP 将关联数组中的键值存储到简单数组中

PHP preg_replace 将 **xyz** 转换为 <b>xyz</b>

php - 使用 PDO 自动提交

javascript - 在 javascript 正则表达式中验证带括号的 boolean 表达式

regex - 将字符串按空格分割成数组,除非部分被引用,golang 中异常(exception)