是否有可能使Apache htaccess重写在django命中之前生效?
我希望能够在优先于Django的htaccess文件中指定RewriteRules
,如果没有匹配,则将其分派到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>
谢谢
首先你缺少WSGIProcessGroup指令。 如果没有这样的话,你的应用程序就不会像守护进程模式那样运行了,正如你在定义了WSGIDaemonProcess指令之后所期望的那样。
其次,在使用WSGIScriptAlias时,除了使用Alias指令映射的静态目录外,甚至不会查询.htaccess文件。
你需要做的是使用AddHandler方法来安装WSGI应用程序,并使用相关的重写规则使其出现在站点的根目录下,如下所示:
http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive
您可以使用Include
将访问文件Include
到配置文件中,但由于目录结构只存在于urls.py
,因此无法使用.htaccess
文件。 您可以随时命名您的包含文件.htaccess
,但将其包含在您的VirtualHost中可能是最好的选择。
我不明白你为什么要在.htaccess文件中这样做。 您应该在上面粘贴的虚拟主机配置中执行此操作。