【发布时间】:2015-10-20 01:16:38
【问题描述】:
我有一个多语言网站。我希望 URL 类似于:http://example.com/en/blog_post/2 其中blog_post 是文件的名称blog_post.php 和2 是参数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]
我试过这条线,但它不起作用:RewriteRule ^(bg|en)/(.*)/([^/\.]+)$ /$2?lang=$1&id=$3 [L]
你能帮帮我吗:)
【问题讨论】:
-
在您的上下文中“不起作用”是什么意思?您最有可能看到的错误更具体:)
-
我尝试使用此 URL localhost:1234/en/blog_post/2 结果是内部服务器错误
-
您的 cmets(例如
//this make url's like site.com/en/)在您的实际文件中吗?那肯定是无效的,会导致 500 错误! -
不,我只在这里评论:)
-
您最初的
Options指令应该有一个+。 IE。Options +FollowSymLinks。如果没有+,您将覆盖所有其他设置 - 尽管这可能仍然可以。
标签: php apache .htaccess mod-rewrite