在我的定製CMS我有一個鏈接頁面像這樣:PHP語言和的.htaccess
www.mywebsite.com/index.php
現在,我嘗試使用多種語言的網頁,所以我的索引頁上進行測試。通過MySQL和語言切換器,我可以成功地從所選語言獲取內容。
所以,鏈接變成這樣的英語和德語:
www.mywebsite.com/index.php?lang=en
www.mywebsite.com/index.php?lang=de
有了這個htaccess的代碼,我去掉.php然後index.php文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
所以鏈路變得像這樣:
www.mywebsite.com/?lang=en
www.mywebsite.com/?lang=de
對於SEO的目的我想刪除參數LANG = EN或LANG = DE,並把/ EN或/日,S? ○URL看起來像這樣:
www.mywebsite.com/en
www.mywebsite.com/de
我已經與htaccess的嘗試這樣做:
RewriteRule ^/(.+?)/(.*)$ $2?lang=$1 [L]
或本:
RewriteRule ^/(en|de)/(.*)$ $2?lang=$1 [L]
但是,當我試圖進入網頁WWW。 mywebsite.com/en或www.mywebsite.com/de,內容不會更改。
我想我必須在htaccess的代碼錯誤...
而且我想要做的其他頁面相同的功能,讓我們說這個頁面:
www.mywebsite.com/posts?lang=en
成爲
www.mywebsite.com/en/posts
不應該是'$ 2.php?lang = $ 1'嗎?最初你正在重寫一個'.php'文件。在語言變體中缺少這一點。 – ROAL
你好,ROAL。我也試過這個代碼:** RewriteRule^/(。+?)/(。*)$ $ 2.php?lang = $ 1 [L] **,但它不會改變任何東西。有了這個:** RewriteRule^/(。+?)/(。*)$ $ 2?lang = $ 1 [L] **但它仍然不起作用。 – user2519032
嘗試刪除第一個斜槓,使其成爲'RewriteRule ^(。+?)/(。*)$ $ 2.php?lang = $ 1 [L]'。 – ROAL