我正在研究「ManualTranslation」類,並且我被困在.htaccess部分。爲特定的重寫查詢添加尾部斜槓
我試圖只將這個查詢?language=xx
改寫成/xx/
。
到目前爲止,我設法使它工作,並不確定它是否是好的或適當的......但它確實缺少一件事。如果由於某種原因 - 有人嘗試通過手動選擇語言:
http://domain.com/it
並忘記添加結尾斜槓,我的.htaccess作品失敗。所以它應該自動添加尾部斜槓(如果它從此查詢參數中缺失)。
RewriteEngine On
Options +FollowSymlinks
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]{2})/(.*)$ $2?language=$1 [QSA]
就目前而言,這隻能是這樣的: http://domain.com/it/
但不是因爲缺少這應該是有斜線的http://domain.com/it
。
如果有人能告訴我我錯過了什麼?
而且我想知道如果有機會的話,如果它未能找到語言來刪除重寫的查詢字符串php
。現在我基本上只是重新導向到當前文件,我還不滿意嗎?
if (isset($query) && !$this->isAllowed($query))
{
header("Location: {$_SERVER['PHP_SELF']}");
exit;
}
是的,是的。我知道語言參數將在每個頁面重定向。但我將「選定/檢測」語言存儲到會話中供以後使用。我假設我可以使用PHP來強制語言參數,但我不介意這樣。 你的重寫現在可以用「/」工作,沒有它,但這可能不適合搜索引擎優化?我認爲它應該只作爲「/ xx /」總是關閉。失蹤時可以強制結尾斜線嗎? – dvLden
好的嘗試我更新的答案。 – anubhava
太棒了!它正在按我的預期工作。 – dvLden