2010-03-25 82 views
4

我/火車目錄別名爲一個腳本在httpd.conf: WSGIScriptAlias /火車/some-path/../django.wsgi讓Apache和Django中添加一個尾隨斜線通過

,而且運作良好,除了一個問題。如果用戶前往/訓練(沒有斜線),則不會將他重定向到/ train /,但只會給他正確的頁面。這是一個問題,因爲當沒有使用尾部斜線來訪問它時,這種方式導致相應的鏈接導致錯誤的地方。

這怎麼解決?

謝謝。

+0

你問的是HTTP: //docs.djangoproject.com/en/dev/ref/settings/#append-slash設置? – 2010-03-25 21:28:55

+0

原來我實際上是在尋找一個Apache解決方案,因爲目前當用戶去/訓練沒有被轉發到我的Django代碼。謝謝你的評論。 – user302099 2010-03-27 11:43:38

回答

6

我使用類似這樣的東西來重定向/訓練到/ train /,我所做的是重定向所有的URL,而不是以/ to/train /結尾。

​​
+0

最後一個解決方案!非常感謝你! – user302099 2010-05-23 22:18:55

0

將您的urlconf設置爲接受train/作爲替代,然後使train導致generic redirect/train/

+0

謝謝,但是Django無法知道用戶是否去訓練或訓練/因爲這兩個都被模式「^ $」檢測到,因爲Apache服務器只會將/train/(.*)重定向到Django。 我想解決方案必須在httpd.conf中,而不是在Django中,至少如果我想讓我的Django代碼獨立於包含的目錄(即 - 在httpd.conf中更改/訓練/其他名稱應該是如果我想更改目錄名稱,唯一要做的事情)。 – user302099 2010-03-27 11:41:27

6

如果你只需要重定向從/train/train/,而不是從每個子目錄不帶後綴斜線,那麼就使用RedirectMatch指令一個簡單的解決方案:

RedirectMatch ^/train$ /train/