Apache:重定向到WSGI脚本是错误的?
问题描述:
我部署了一个Flask应用程序到Apache。这工作,但我已经添加了一些重定向非www流量到www域。Apache:重定向到WSGI脚本是错误的?
<VirtualHost *:80>
ServerName myapp.com
WSGIDaemonProcess myapp python-home=/home/ubuntu/envs/myapp user=ubuntu group=ubuntu threads=5
WSGIScriptAlias//home/ubuntu/apps/myapp/myapp.wsgi
Alias /static /home/ubuntu/apps/myapp/myapp/static
<Directory /home/ubuntu/apps/myapp>
WSGIProcessGroup myapp
WSGIApplicationGroup %{GLOBAL}
Require all granted
AllowOverride All
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</Directory>
</VirtualHost>
This Works!但是,当我冲浪到myapp.com/test.html我被重定向到www.myapp.com/myapp.wsgi/test.html - 这是不正确的!我尝试修改上面的文件中的一些参数,但目前没有所需的结果。
有关如何解决这个问题的任何提示?
亲切的问候, B.
答
我设法得到的东西具有以下配置工作:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
ServerName myapp.com
WSGIDaemonProcess myapp python-home=/home/ubuntu/envs/myapp user=ubuntu group=ubuntu threads=5
WSGIScriptAlias//home/ubuntu/apps/myapp/myapp.wsgi
Alias /static /home/ubuntu/apps/myapp/myapp/static
<Directory /home/ubuntu/apps/myapp>
WSGIProcessGroup myapp
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
</VirtualHost>
不要把''Directory''指令内重写规则,把它们在''VirtualHost''的顶层。 –
已经尝试过,但会导致Apache不再启动... – Braek
显示配置时,以及Apache或系统日志中的错误。当在''Directory''指令之外时,你不应该使用''RewriteBase''作为开始。 –