htaccess と www はありません
-
24-09-2019 - |
質問
サイト全体を www 以外にリダイレクトしようとしています
これが私が使用しているhtaccessコードです
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# no www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301,L]
何か案は
解決
私はあなたのルールは、モジュールタグの間に必要だと思います。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# no www
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301,L]
# BEGIN WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>
他のヒント
.htaccess に追加する必要があるものは次のとおりです。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
ただし、サイト全体を動かすエンジンとして Wordpress を使用している場合は、パーマリンク構造とドメイン名を含むすべての内部設定を更新して、www を削除するだけです。
編集:
答えを書いたときは違うと思いました、ごめんなさい。www 以外のルールを一番上に移動してみてください...
# no www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301s,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
もう一度、Wordpress がリンクを生成するように設定されているかどうかに注意してください。 www
そうすれば、たとえ正しい書き換えルールがあっても、すべてが www を持つ状態に戻ることを妨げるものは何もありません。
Wordpress の詳細情報:
で設定を確認してください wp/wp-admin/options-general.php
...
- 必ず取り外してください
www
でWordPress address (URL)
- 必ず取り外してください
www
でBlog address (URL)
そして、プレマリンク構造を更新します wp-admin/options-permalink.php
変更が反映されます。
以上のことをすべて行った後、Wordpress が新しいコードを上書きしていないことを確認してください。 .htaccess
ファイル。
こんにちは、私はあなたが仕事に書き換えるために、次のようにスクリプトを調整する必要があると思う。
Options +FollowSymlinks
RewriteEngine on
私は次のシンボリックリンクが絶対的に正しく動作するにはURL書き換えのために含まれなければならないことを信じています。
ここでmod_rewriteの詳細なアドバイス:
http://www.askapache.com/htaccess/mod_rewrite :ヒント-と-tricks.html の
ロブ
RewriteEngine On
RewriteBase /
# no www
RewriteCond %{HTTP_HOST} ^([^.]+)\.akorra\.com$ [NC]
RewriteRule ^(.*)$ http://akorra.com/$1 [R=301,L]
# WordPres
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
これは動作するはずです。
私はあなたのウェブサイトからWWWを除去するためのコードのこの部分を使用することをお勧めします:
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
それはより一般的なのです。
とあなたの例では、これを使用するのが最善です
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# no www
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
# BEGIN WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>