0

こんにちは私は私のサイトで言語を切り替えるためのhtmlテンプレートを持っています:

<form action="{{ SITE_URL }}i18n/setlang/" name="postlink" method="post">{% csrf_token %}
    <ul class="lang">
        <li class="lang">
            {% for lang in LANGUAGES %}
                {% if lang.0 != LANGUAGE_CODE %}
                    <input type="hidden" name="language" value="{{ lang.0 }}">
                    <a class="active" href=# onclick="submitPostLink()">{{ lang.1 }}</a>
                {% else %}
                    {{ lang.1 }}
                {% endif %}
                {% if forloop.last %}{% else %} &nbsp; | &nbsp;{% endif %}
            {% endfor %}
        </li>
    </ul>
</form>

これはすべて、開発サーバー、本番環境、および本番環境( www.mysite.com/project/の通常のURL)で正常に機能します。

ただし、 project.mysite.comまたはmysite.com.projectを試してみると、ホームページは通常どおり表示されますが、言語を変更すると403Forbiddenエラーが発生します。

setlangどこかに必要なルートURLバリエーションを定義する必要がありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

2

これらのURLは異なるサブドメインで実行されているため、CSRF Coo​​kieのドメイン設定を確認する必要がありますCSRF_COOKIE_DOMAINhttps ://docs.djangoproject.com/en/1.3/ref/contrib/csrf/#subdomains

于 2012-05-21T15:43:45.900 に答える