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>
我最近刚刚使用 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>