按所选语言重写index.php URL

时间:2013-03-20 13:37:51

标签: php .htaccess mod-rewrite

我刚刚在这里搜索过很多关于这个实现的搜索,但我无法搞清楚。

我的意思是:我有一个包含3种语言的投资组合网站(单页)。每次我点击一个标志(IT,EN,FR)它都会加载一个php文件。在里面有许多基于选择语言的翻译句子/单词。

**问题:
最后的网址如下:localhost/site/index.php?lang=en(如果点击英文朗) 我想重写它:localhost/site/en

如何编写htaccess文件? **

我只是按照这个提示 - > Simulate file structure with PHP

这一个:

RewriteEngine on
RewriteRule ^en/(.*)\.html$ /$1.php?language=english [L,QSA]

我无法弄清楚为什么不起作用。

其他细节:
- wamp服务器
- mod_rewrite激活
- 单页网站(jquery)
- firefox

谢谢。

1 个答案:

答案 0 :(得分:0)

你的.htaccess希望成为这样的东西:

IndexIgnore */*

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php

将任何请求发送到index.php。

不存在的文件

然后在PHP中检查URL并提供适当的服务:

$uri = $_SERVER["REQUEST_URI"];
$uriParts = explode("/", $uri);
$language = end($uriParts);

if ($language == "en) {
....

如果它与预期的语言不匹配,则值得投掷404。