php - 多语言和 mod_rewrite

标签 php apache .htaccess mod-rewrite

我有一个多语言网站。我希望 URL 类似于:http://example.com/en/blog_post/2 其中 blog_post 是文件 blog_post.php2 是参数 id 的值。

我现在有这个 .htaccess 代码

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^(bg|en)/(.*)$ /$2?lang=$1 [L]
RewriteRule ^(bg|en)/(.*)/([^/.]+)$ /$2?lang=$1&id=$3 [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]

我试过这条线,但它不起作用:
重写规则 ^(bg|en)/(.*)/([^/\.]+)$/$2?lang=$1&id=$3 [L]

你能帮帮我吗:)

最佳答案

我做到了。它适用于这些线。感谢大家:)

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^(bg|en)/post/([^/\.]+)$ blog_post.php?lang=$1&id=$2 [L]
RewriteRule ^(bg|en)/(.*)$ $2?lang=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]

关于php - 多语言和 mod_rewrite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31693998/

相关文章:

php - 无法将我的 PayPal IPN 脚本从 http 1.0 转换为 1.1

php - 比较两个字符串并返回不匹配的子字符串

java - 启动 Tomcat 7.0 时出错

apache - 从 htaccess 重写规则中删除硬编码的 url

php - htaccess 尾部斜线问题

php - 如果unread_bytes == 0,则取消阻塞fread(),而不会使流连接超时

Java速度虚拟机文件#set使用 boolean 变量

php - 谷歌上的重复内容。 htaccess 或 robots.txt?

php - Codeigniter - 收到 404 Not Found 错误

php - 在 centOS 6.9 (Final) 中将 php-5.6 升级到 7.3 时显示多个错误