2017-03-16 35 views
0

我改變一個網站成爲一個多語種的網站:htaccess的 - 跳過第一個文件夾,並通過可變

example.com/en/view-item/sku/

example.com/es/視圖項目/ SKU/

example.com/de/view-item/sku/

而需要傳遞/ FR /一部分作爲可變的。

這個問題給了一個很好的答案:htaccess - skip first folder

然而,在我的htaccess的文件,我也有其他的規則,例如:

重寫規則視圖項/([^ /] +)/ $ /shop/view.php?productcode=$1

重寫規則的產品類別/([^/.]+)/?$ /shop/products.php?selectedcat=$1

問題是,在使用...

重寫規則^(EN | FR | ES | DE | NL |它)?(/.*)$ $ 2語言= $ 1 [NC,L,QSA]

...作品時的路徑不被htaccess的編輯,例如:

www.example.com/fr/shop/view.php?productcode=abc123

這在OK上添加了語言變量。

www.example.com/fr/view-item/sku/

它不工作,因爲htaccess的再次改變這一點。我想這已經佔到後的/ FR /網址會是這樣的:

www.example.com/fr/view-item/sku/

www.example.com/view-item/sku/?language=fr

我的htaccess的知識去心不是足夠知道有什麼用代碼來傳遞再次語言變量。

我也試過......

重寫規則^(EN | FR | ES | DE | NL |吧)(/.*)$ $ 2/$ 1/[NC,L,QSA]

RewriteRule view-item /([^/.]+)/([^/。] +)/ $ /shop/view.php?productcode=$1 &語言= $ 16

這工作,但不會工作,爲這些網址...

www.example.com/ FR/

www.example.com/fr/shop/view.php?productcode=abc123

我認爲第一個示例將工作,如果我能通上?語言=當編輯$ 1/view-item /文件夾。

預先感謝您。

回答

0

我剛剛發現了一個變通爲此,通過基本上把上面以不同的順序:

重寫規則^(EN | FR | ES | DE | NL | IT)/視圖項/([^/.]+)(/.*)$$$$$$$$/shop/view.php?productcode=$2 [NC,L,QSA]

RewriteRule view-item /([^/.]+ )(/.*)$ /shop/view.php?productcode=$1

RewriteRule ^(en | fr | es | de | nl | it)(/.*)$ $ 2?language = $ 1 [NC, L,QSA]

雖然這不是我原來的問題需要確切的,它的工作原理我認爲我會在這裏發表。如果有人有更好的解決方案,請發帖,謝謝。

0

是不是這樣:

RewriteEngine On 

RewriteRule ^(en|fr|es|de|nl|it)(/.*)$ $2?language=$1 [NC,L,QSA] 

RewriteRule ^view-item/([^/.]+)/?$ /shop/view.php?productcode=$1 [L,QSA,NC] 

RewriteRule ^product-category/([^/.]+)/?$ /shop/products.php?selectedcat=$1 [L,QSA,NC] 
相關問題