Django 应用需要 URL 中的 www

Django App requires www in URL

我最近刚刚使用 mod_wsgi 在 apache 服务器上启动了我的 Django 应用程序。如果我不把 www 放在 URL 中,我总是会收到 404 错误。 IE。 "example.com" 重定向到“http://www.example.com/wsgi.py”并出现 404 错误。

虽然以下 URL 工作正常:

www.example.com/about

如果我只键入 "example.com/about",我将被重定向到位于 www.example.com/wsgi.py/about.

的 404 页面

知道为什么会这样吗?我允许的主机中有“*”。我也试过 ".example.com" 代替。

此外,我的站点 www 根目录中有一个 .htaccess 文件,其规则如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/ [R=301,L]

使用虚拟主机是更好的解决方案:

<VirtualHost *:80>
    ServerAlias example.com
    RedirectMatch permanent ^/(.*) http://www.example.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName www.example.com
    ...your config here...
</VirtualHost>