0

我有一个静态内容站点,所有在 apache 上运行的都可以访问。除此之外,还有一个在 django 上运行的会员网站。我没有任何问题“共享”我的 .css 并使双方在外观上相同,但我似乎不太明白的是让我的 django 网站受到 django 密码保护(另外需要注意的是所有成员材料,从登录开始,经过 443)。

我可以提供所有页面,我尝试使用 mod_rewrite 如下:

<Directory /Library/Webserver/Documents>
.
.
.
</Directory>

WSGIScriptAlias /members /usr/local/django/mysite/apache/django.wsgi 


<Directory /members>
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://{HTTP_HOST}%{REQUEST_URI} [L]
.
.
</Directory>

我已经尝试了上面 '/members 位置中的一千个不同项目中的每一个,似乎没有任何影响(是的,RewriteEngine On 包括在内 - 我可以看到调试出来)。

4

1 回答 1

0

尝试:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

您应该重定向回请求所针对的同一主机,而不一定是实际的 Web 服务器主机。

我也不相信 mod_rewrite 中有 %{URI} 变量。应该使用 %{REQUEST_URI}。


编辑 1

根据评论,应该是:

<Location /members>
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://{HTTP_HOST}%{REQUEST_URI} [L]
.
.
</Location>

或者:

<Directory /usr/local/django/mysite/apache>
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://{HTTP_HOST}%{REQUEST_URI} [L]
.
.
</Directory>

因此,Location 用于 URL,Directory 用于文件系统目录。

于 2009-12-10T21:07:40.533 回答