0

現在、ディレクトリではない URL に対して要求が行われると、私の .htaccess は末尾のスラッシュを削除するように設定されています。問題は、test.domain.com/order.php/ が test.domain.com/order.php ではなく、test.domain.com/test/order.php にリダイレクトされることです。サブドメインにない場合は完全に機能します。

末尾のスラッシュを削除するために使用している .htaccess コードは次のとおりです。

    #if it's not a directory
    RewriteCond %{REQUEST_FILENAME} !-d
    #and it has a trailing slash, then redirect to URL without slash
    RewriteRule ^(.+)/$ /$1 [L,R=301]

どういうわけか、サブドメインが提供するサブディレクトリが、既存のサブドメインに加えて URL に追加されます。/test を追加せずに末尾のスラッシュを削除するにはどうすればよいですか?

編集:

完全な .htaccess は次のとおりです。

    RewriteEngine On

    Options +SymLinksIfOwnerMatch
    Options -Indexes
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)/$ /$1 [L,R=301]
4

1 に答える 1

0

私の質問の下にある anubhava のコメントを見た後、サブドメインのサブディレクトリにある .htaccess ファイルに末尾のスラッシュを削除するルールを入れることにしました。また、ドキュメント ルート .htaccess のルールがサブディレクトリに影響を与えないようにします (独自のルールがあるため)。

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{HTTP_HOST} !^test\. [NC]
    RewriteRule ^(.+)/$ /$1 [L,R=301]

メイン サイトとサブドメインで意図したとおりに機能するようになりました。

于 2014-05-26T05:39:40.597 に答える