Django 应用程序、wordpress 博客、apache 301 规范重定向 ->为什么我有无限循环?

发布于 2024-10-29 12:06:59 字数 862 浏览 2 评论 0原文

我在 / (由 WSGI 提供)有一个 django 应用程序,在 /blog/ 有一个 wordpress 博客。我正在尝试设置从 example.com 到 www.example.com 的 301 重定向,并设法做到这一点,除了 wordpress 博客。访问博客会触发无限重定向循环。

Apache 配置位于 /etc/apache2/sites-enabled/example.com

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / http://www.example.com/
</VirtualHost>

<VirtualHost *:80>
   ServerName www.example.com
   DocumentRoot /srv/www/example.com/public_html/
   Alias /blog "/srv/www/example.com/public_html"
</VirtualHost>

WordPress 博客在根目录 /srv/www/example.com/public_html 中有一个 .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

I have a django app at / (served by WSGI), and a wordpress blog at /blog/. I'm trying to setup a 301 redirection from example.com to www.example.com, and managed to do so, except the wordpress blog. Reaching the blog triggers an infinite redirect loop.

Apache configuration at /etc/apache2/sites-enabled/example.com

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / http://www.example.com/
</VirtualHost>

<VirtualHost *:80>
   ServerName www.example.com
   DocumentRoot /srv/www/example.com/public_html/
   Alias /blog "/srv/www/example.com/public_html"
</VirtualHost>

The wordpress blog has a .htaccess in the root directory /srv/www/example.com/public_html:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

叹沉浮 2024-11-05 12:06:59

好的,我知道为什么服务器会给出无限重定向。

WordPress 博客是在 example.com 上配置的(在设置中)。因此它会在内部将 URL 从 www.example.com/blog 重写为 example.com/blog。此时,我的重定向(example.com -> www.example.com)将启动,发送无限循环。

解决方案是将站点设置为“www.example.com”而不是“example.com”。配置是正确的。

Ok, I found out why the server was giving infinite redirect.

Wordpress blog was configured (in settings) at example.com. So it would internally rewrite the URL from www.example.com/blog to example.com/blog. At this point my redirect (example.com -> www.example.com) would kick in, sending an infinite loop.

Solution was simply to set the site at 'www.example.com' and not 'example.com'. The configuration was correct.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文