0

ExpressionEngine を実行しているプラ​​イマリ サイトがあり、YOURLS を「work」というサブフォルダーで実行しようとしています。つまり 、短い URL の場合はhttp://foo.com/work/であり、EE はルートで実行されています。つまり、http: //foo.com/。「www」がないことに注意してください。

私が抱えている問題は、短い URL を使用し、ユーザーがhttp://www.foo.com/work/123などの URI に「www」を追加すると、次のようなリダイレクト チェーンが得られることです。

URI から「www」を省略しても、すべて正常に機能します。YOURLS は非 www を使用するように設定されていますが、これらの URI が印刷広告に配置されているため、一部のユーザーが習慣的に「www」を入力する可能性があるという懸念があります。

ルート .htaccess ファイルは次のようになります。

SetOutputFilter DEFLATE
DirectoryIndex index.php index.html

# BEGIN ExpressionEngine Rewrite
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteCond %{HTTP_HOST} ^www.foo.com [NC]
RewriteRule ^(.*)$ http://foo.com/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteRule ^(.*)$ /index.php?$1 [NC,L]
</IfModule>
# END ExpressionEngine Rewrite

/work/ (YURLS) .htaccess は次のようになります。

# BEGIN YOURLS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /work/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /work/yourls-loader.php [L]
</IfModule>
# END YOURLS

EE を完全にホース化せずに、「www」URI を非 www URI のように機能させるにはどうすればよいですか? :)

4

1 に答える 1

0

同様の問題に直面しました。一部のエンド ユーザーまたは短い URL を公開している人々は、短い URL を www なしで使用することを意図して購入されたときに、それらに www を追加する傾向があります。

また、 YOURLS リダイレクト インデックス プラグインをインストールして、ホームページの訪問者を通常のホームページに転送しました。

したがって、いくつかの異なるタイプの URL がありました。

  1. 短いドメインのホームページ。通常の https ホームページにつながるはずです
  2. 短いドメイン YOURLS 管理パネル、https 管理パネルにつながるはずです
  3. 短いドメインの短縮 URL は、長い URL につながるはずです

すべての URL が www の有無にかかわらず機能し、http が https に転送されるようにしたかったのです。

私の解決策は、次の行で .htaccess を開始することでした。

# Force HTTPS (because of passwords via /admin) and use clean domain (non www)
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www.examp.le [NC]
RewriteRule ^(.*)$ https://examp.le/$1 [L,R=301]
于 2016-07-08T21:06:35.130 に答える