2013-03-20 65 views
1

我刚刚在这里搜索了很多,并且搜索了这个实现,但我无法弄清楚。按所选语言重写index.php网址

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

**问:
最终URL,如: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的)
- 火狐

谢谢。

回答

0

你的.htaccess希望成为这些方针的东西:

IndexIgnore */* 

RewriteEngine On 

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

将直接不存在你的index.php任何请求的文件。

然后在PHP查询的网址和服务于适当的:

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

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

值得扔404,如果它不符合期望的语言。

+0

我会尽量今晚,谢谢。最后一个问题:我正在使用WAMP,它可能会导致问题?我必须注意用WAMP编写我的htaccess?哪里应该创建,在根本地主机或我的“网站”文件夹? – zorta86 2013-03-20 14:13:50

+0

任何类型的解决方案都不起作用。现在我想是因为WAMP配置或者我错过了RewriteBase规则中的某些东西。任何帮助表示赞赏,谢谢。 – zorta86 2013-03-20 22:32:37

+0

您是否启用了网址重写? http://stackoverflow.com/questions/869092/how-to-enable-mod-rewrite-for-apache-2-2 – Dan 2013-03-21 08:58:18

0

这将工作

RewriteRule ^(.*).html index.php?lang=$1 [L] 

你的URL将被localhost/site/en.html