なぜこのようになりません.htaccess
すべてのサブディレクトリにSSLを使用させますか?サブディレクトリをsslにリダイレクトできません
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
私の特定のユースケース:私はサブディレクトリにインストールワードプレスを持っている、と私はmod_rewrite
を使用していると「隠す」という私のサイトの訪問者からの(ドキュメントはexample.com/wordpress
に保存されているが、example.com
としてブラウザに表示されています) 。すべての良いそこに。私は無数の投稿にある命令ごとにHTTPSリライトを追加しました。しかし、example.com/nextcloud
にアクセスすると、すべてのファイルがHTTP経由で配信されます。
/nextcloud
サブディレクトリに.htaccess
ファイルがあります。次のようにmod_rewrite
に関係する部分だけを読み取ります(サブディレクトリ内.htaccess
が高いディレクトリの設定を上書きすることができます)
RewriteEngine on
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/.*
RewriteRule ^(?:\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
は私だけ.htaccess
ファイルの非常に基本的な知識を持っていますが、私の理解では、それはトップダウンで動作することですのを除き、特殊なケースであり、逆の方法で動作します(最上位のディレクトリが優先されます)。
私の理解が真実なら、私のコードはなぜ機能しないのですか?あなたの/.htaccess
で
だから、外の世界には、そのサブディレクトリからnextcloudが提供されるはずですが、WordPressサイトはルートから提供されるべきですか?もしそうなら、簡単な解決策があります。 – Walf
@ Walf正しいことです。それは私が達成しようとしているものです。 –