2016-01-18 52 views
-1

我需要創建網址友好的多語言與htaccess的和PHP,例如:URL友好的多語言與htaccess的和PHP

mydomain.com/create_account.php

我需要:

英語:mydomain.com/create_account
西班牙語: mydomain.com/crear_una_cuenta
葡萄牙語:mydomain.com/criar_conta

另外我會n電子娛樂設備,使在同一htaccess的詳細文件:

mydomain.com/contact_us.php 

我需要:

英語:mydomain.com/contact_us
西班牙語:mydomain.com/contacto
葡萄牙:mydomain.com/contato

mydomain.com/login.php 

我需要:

英語:mydomain.com/login
西班牙語:mydomain.com/login
葡萄牙:mydomain.com/login

mydomain.com/account.php 

我需要:

英語:mydomain.com/account
西班牙語:mydomain.com/cuenta
葡萄牙:mydomain.com/conta

mydomain.com/shopping_cart.php 

我需要:

英語:mydomain.com/shopping_cart
西班牙語:mydomain.com/mi_carrito
葡萄牙:mydomain.com/carrinho_de_compras

mydomain.com/checkout.php 

我需要:

英語:mydomain.com/checkout
西班牙語:mydomain.com/finalizar_compra
葡萄牙:mydomain.com/finalizar_compra

請你能幫我製作htaccess文件嗎?

+2

1)你有什麼嘗試? 2)你如何告訴服務器要使用哪種語言? – CD001

回答

0

可以使用%{HTTP:Accept-Language}頭狀態檢查瀏覽器語言:

RewriteBase/

RewriteCond %{HTTP:Accept-Language} ^en [NC] 
RewriteRule ^create_account /create_account.php [L] 

RewriteCond %{HTTP:Accept-Language} ^es [NC] 
RewriteRule ^crear_una_cuenta /create_account.php [L] 

RewriteCond %{HTTP:Accept-Language} ^pt [NC] 
RewriteRule ^criar_conta /create_account.php [L] 

這樣,它會重寫用適當的語言的URL。您可以對其他規則使用相同的邏輯。

或者考慮到您已經在爲每種語言使用不同的網址,您可以刪除那些RewriteCond

+0

感謝您的回覆,我在htaccess中添加了但不起作用,總是顯示頁面未找到錯誤404. – Marcelo

+0

我剛剛注意到我顛倒了規則,看到了更新後的答案。請注意,考慮到您爲每種語言使用不同的URL,您可以跳過這種情況下的rewritecond。 – vard

+0

非常感謝,現在它的作品! – Marcelo

0

正如我在文章中建議的那樣,我做到了,並且工作完美:或者考慮到您已經在爲每種語言使用不同的網址,您可以刪除這些RewriteCond。

現在的問題是,在相同的htaccess:

這些規則做工精細: RewriteRule ^(.*)-ca.html /create_account.php [L] RewriteRule ^(.*)-l.html /login.php [L] RewriteRule ^(.*)-pn.html /products_new.php [L] RewriteRule ^(.*)-fp.html /featured_products.php [L]

但是,當我加入提綱規則顯示找不到網頁: RewriteRule ^(.*)-s.html /specials.php [L] RewriteRule ^(.*)-bes.html /best_sellers.php [L]

網址例如: mydomain.com/specials-s.html錯誤頁面未找到 mydomain.com/best-sellers-bes.html錯誤頁面未找到

謝謝。

+0

另一件事是,如果create_account.php和它在ssl中login.php不工作顯示頁面未找到。示例:https mydomain.com/~user/login-l.html找不到錯誤頁面和https mydomain.com/~user/create-account-ca.html找不到錯誤頁面 – Marcelo