好吧,基本上我有部分.htaccess部分工作,但還不完全。我的服務器上有兩個子目錄,分別是英文和法文網站(子目錄分別是en和fr)。當用戶在URL欄中輸入內容時,我希望他們輸入的任何內容都可以添加到en或fr(取決於用戶在其計算機上的默認語言)。.htaccess多語言站點
如果他們輸入domain.com/test(並且他們的語言設置爲英語),我希望它重定向到domain.com/en/test/。我只想要這樣做,如果測試不是根目錄中的文件夾,目錄,文件或ANYTHING。
這裏是我的.htaccess代碼到目前爲止那種作品:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^(.*)$ /en/$1/ [R=301,L]
我的代碼的問題,雖然,然而,就是如果用戶在類似domain.com/test/進入(WITH斜線),它將無法正常工作,因爲我的.htaccess中有另一部分強制在所有內容的末尾加上斜線。如果用戶輸入domain.com/test.html(並且該域是根目錄中的文件),它將不起作用,因爲我的.htaccess中的另一部分刪除了.html擴展名。
基本上,我需要這個重定向工作在絕對所有的情況下,除了邏輯上不應該的地方。
無論如何,如果你們中的任何人都可以幫助我,我會非常感激。
我不想使用PHP,我只對使用.htaccess文件感興趣。就像我在OP中所說的那樣,我有一部分工作。如果輸入的URL末尾沒有斜線,則會添加/ en /。但它也會在某些情況下重寫URL,例如:如果該文件已位於根文件夾中。 – shootingrubber 2012-04-03 08:03:24
我的原始代碼也存在另一個問題。當我真的在en/subdomain中時,它會在URL中添加另一個en /。所以如果我在domain.com/en/test上,然後點擊該示例,它將轉到domain.com/en/en/example。 – shootingrubber 2012-04-03 08:10:29
謝謝,它幫助我。 – Elkas 2012-12-20 17:11:49