2012-05-25 50 views
1

我在使用Django urlconf時遇到問題。工作在dev和prod之間的不同行爲的url模式 - Django

基本上我有這種模式:

^publication/(?P<pub_search>[\w\.=&]+)?(/keyword/(?P<key_search>[\w=&]+))?(/author/(?P<auth_search>[\w=&]+))?(/tag/(?P<tag_search>[\w=&]+))?(/from/(?P<from_date>[\w\d=&]+))?(/until/(?P<until_date>[\w\d=&]+))?$

根據這個模式,我應該能有這種形式的URL:

http://127.0.0.1:8000/publication//author/name=crock

事實上這個網址的形式是在我的django開發服務器中得到認可。但在生產服務器(Apache + mod_wsgi)上,它與url不匹配。

我不知道爲什麼它在prod服務器上採取這種方式。

Cheers

回答

1

Apache在路徑中刪除多個斜槓。你可以用一些mod_rewrite的魔法來解決這個問題。

here報價:

RewriteCond %{THE_REQUEST} ^GET\ /(https?://[^\s]+) 
RewriteRule ^https?:/ index.php?url=%1 [L] 
+0

謝謝,但我很小白與mod_rewrite的......我應該怎麼寫規則,允許在http://www.example.com/所有URL doubleslashes ckp /例如? – renard

+0

我也不是mod_rewrite的專家。我添加了一個例子,但是使用谷歌搜索應該可以幫助你。無論哪種方式,我會看到如果你可以擺脫在url模式中的雙斜槓.. – Wesley

相關問題