我被这个困住了,我在网络服务器领域的技能很差......
我有一个 Nginx 作为运行 mod_wsgi 和 mod_rewrite 的 Apache2 的代理。我想要做的是将每个 URL 从 www.example.com 重写为 example.com,即在服务之前从每个 URL 请求中剥离 www 部分。这是不同 conf 文件的布局:
=== /etc/nginx/sites-enabled/example.com ===:
=== /etc/apache2/sites-enabled/example.com ===:
=== /home/nabuco/public_html/example.com/example/apache/example.wsgi ===:
在我的旧设置中,我有一个运行 mod_python 的 Apache2,我唯一要做的就是放置一个 .htaccess 文件,如下所示:
Options -Indexes
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
那工作得很好。
但我尝试将相同的 .htaccess 文件放入 /home/nabuco/public_html/nomadblue.com/nomadblue/apache/.htaccess。如果我在不带 www 的情况下发出请求,例如http://example.com/或http://example.com/whatever,则一切顺利。但是,如果我尝试http://www.example.com/的 www 版本,我将被重定向到:
http://example.com/example.wsgi/
我是否必须从 nginx 运行重写规则?我也尝试过,将其添加到 nginx conf 文件中:
rewrite ^/(.*) http://example.com/$1 permanent;
但现在我得到了firefox所说的“循环循环”......
那么我能把这个(我猜是微不足道的)事情搞定吗?
提前致谢,
赫克托