2013-03-20 153 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