2012-10-26 94 views
1

我想更改顯示的客戶端URL的結構。我不太熟練使用正則表達式和編碼.htaccess文件。基本上,我有一個看起來像一個結構:覆蓋django的.htaccess文件中的url

www.abc.com/login/?lang=es 

我想這顯示在地址欄中顯示爲:

www.abc.com/login/es

所以,請告訴我,我怎麼能覆蓋現有我的.htaccess文件中的網址。

感謝

編輯

我的目錄列表

`

的myproject

------------- >我的申請

------------->設置/ URL目錄

媒體
templates`

+0

我不明白爲什麼您要首先以該格式創建網址。 Django本身理解第二種格式:第一種格式的常見原因是與僅接受查詢參數的PHP CMS一起使用。 –

回答

2

你需要做的第一件事是檢查所有的代碼並將您的登錄鏈接更改爲:

www.abc.com/login/es 

它會爲您節省額外的連接和重定向。

然後,你需要在你的htaccess文件的規則在www.abc.com文檔根目錄重定向時客戶端請求的​​做出了更好看的URL:

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /login/?\?lang=([^&\ ]+) 
RewriteRule^/login/%2? [L,R=301] 

然後,你需要規則內部重寫的更好看的URL 到具有查詢字符串中的一個:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/?login/(.*)$ /login/?lang=$1 [L] 

如果基本URI已更改(從/login/login/es),則可能需要在登錄頁面中包含基本URI,以便相關鏈接仍能正確解析。您可以通過在頁面標題中添加此標記來完成此操作:

<base href="/"> 
+0

感謝您的回覆.......現在我正在活服務器上工作,所以你能告訴我在哪裏我必須把這個.htaccess文件 我編輯我的問題,顯示我的項目directoey列表 – user1746291

+0

最後!!!!!非常感謝@ Jon – user1746291