2009-06-24 32 views
11

Tôi đang định cấu hình dự án Django của mình để chạy trên Apache bằng cách sử dụng mod_wsgi. Tôi đang cố gắng chạy Django bên dưới thư mục 'cflow' trên apache, nhưng đang chạy vào vấn đề với chuyển hướng.Vấn đề chuyển hướng Django Apache

apache conf của tôi trông giống như sau:

... 
WSGIScriptAlias /cflow "C:\Program Files\Apache Software Foundation\Apache2.2\wsgi\django.wsgi" 
<Directory "C:\Program Files\Apache Software Foundation\Apache2.2\wsgi"> 
    Order allow,deny 
    Allow from all 
</Directory> 
<Directory "C:\Projects\myproject\src"> 
    Order allow,deny 
    Allow from all 
</Directory> 

Vấn đề tôi đang chạy vào đó là nếu người dùng không đăng nhập, yêu cầu /cflow/somepage.html sẽ được reidrected đến/tài khoản/đăng nhập? next =/cflow/somepage.html. Địa chỉ mới này không phải là dưới gốc django (cflow), vì vậy apache đáp ứng với 404 Not Found.

Câu hỏi của tôi là làm cách nào để chuyển hướng Django được ánh xạ xuống dưới thư mục gốc của ứng dụng trên apache? I E. làm cách nào để tôi có thể tạo trang/tài khoản/... thay vì/cflow/accounts/...?

Cảm ơn bạn đã được trợ giúp.

Trả lời

15

Những điều cần thử:

  1. Thay đổi hiện tại miền để "yourdomain.tld/cflow" trong "sites" framework. Thật dễ dàng khi sử dụng lệnh quản trị django hoặc dumpdata/loaddata manage.py.

  2. Có vẻ như trang web của bạn đang sử dụng trang trí login_required. Trong trường hợp đặc biệt mà bạn có thể thêm vào settings.py:

    LOGIN_URL = '/ cflow/tài khoản/đăng nhập /'

+3

Cảm ơn. Tôi đã hy vọng cho một giải pháp minh bạch cho ứng dụng Django. Tôi muốn có thể kiểm tra trang web trên một địa chỉ/máy chủ và triển khai trên một địa chỉ khác mà không cần bất kỳ cấu hình bổ sung nào. Tuy nhiên, tôi sẽ xem xét khuôn khổ trang web. Cảm ơn vì tiền hỗ trợ. – liminal

+1

Tôi nghĩ nó sẽ đơn giản hơn, nhưng đây chắc chắn là một câu trả lời đúng. Tôi đã có cùng một vấn đề và cuối cùng đã tìm thấy câu trả lời này. Cảm ơn alex! –

Các vấn đề liên quan