Django和.htaccess重写/redirect,这可能吗?

是否有可能使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文件中这样做。 您应该在上面粘贴的虚拟主机配置中执行此操作。