是否有可能让Apache htaccess重写在点击django之前生效?
我希望能够在htaccess文件中指定RewriteRules
,该文件优先于django,如果没有匹配则会被调度到mod_wsgi / django。
我们正在使用带有mod_wsgi的apache2,而apache vhost看起来像这样:
<VirtualHost *:80>
DocumentRoot /usr/local/www/site/static
Alias /css/ /usr/local/www/site/static/css/
Alias /js/ /usr/local/www/site/static/js/
Alias /img/ /usr/local/www/site/static/img/
Alias /flash/ /usr/local/www/site/static/flash/
<Directory /usr/local/www/site/static>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess mallorca-site threads=15
WSGIScriptAlias / /usr/local/www/site/config/dev/dev.wsgi
</VirtualHost>
由于
答案 0 :(得分:3)
首先,您缺少WSGIProcessGroup指令。如果没有这个,你的应用程序将不会像你在定义WSGIDaemonProcess指令后所期望的那样以守护进程模式运行。
其次,除了使用Alias指令映射的静态目录外,使用WSGIScriptAlias时甚至不会查询.htaccess文件。
您需要做的是使用AddHandler方法来安装WSGI应用程序,并使用相关的重写规则使其显示在站点的根目录,如下所述:
http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive
答案 1 :(得分:1)
您可以使用Include
在配置文件中包含访问文件,但由于目录结构仅存在于urls.py
中,因此您将无法使用.htaccess
文件。您始终可以命名包含文件.htaccess
,但将其包含在您的VirtualHost中可能是最佳选择。
答案 2 :(得分:0)
我不明白你为什么要在.htaccess文件中这样做。您应该在上面粘贴的虚拟主机配置中执行此操作。