![使用 Django 和 mod_wsgi 通过 httpd.conf 进行重定向](https://linux22.com/image/571040/%E4%BD%BF%E7%94%A8%20Django%20%E5%92%8C%20mod_wsgi%20%E9%80%9A%E8%BF%87%20httpd.conf%20%E8%BF%9B%E8%A1%8C%E9%87%8D%E5%AE%9A%E5%90%91.png)
我正在尝试使用 Apache 的 Rewrite 模块在 Django 捕获请求之前重定向用户。我尝试了以下操作将用户从“test.php”重定向到“链接”页面
<VirtualHost 10.0.0.3>
WSGIDaemonProcess mydomain.com processes=1 threads=15 display-name=$
WSGIProcessGroup mydomain.com
DocumentRoot "/home/james/www"
<Directory "/home/james/www">
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^test.php links [NC,R=301,L]
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / "/home/james/www/app.wsgi"
ServerName mydomain.com
</VirtualHost>
这种方法不起作用(当导航到 mydomain.com/test.php 时,它不会将我重定向到确实存在的“链接”页面)。
有没有办法用 mod_wsgi 实现重写?
答案1
如果 mod_rewrite 规则编写正确且在正确的上下文中,它应该可以工作。它可能会失败,因为您在目录上下文中执行此操作,并且对该上下文的设置不正确。
但为什么不使用更简单的 RedirectPermanent 指令:
RedirectPermanent /test.php http://mydomain.com/links
看:
http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectpermanent
这应该在目录上下文之外并位于 VirtualHost 内的顶层。