質問

サイト全体を 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 ...

  • 必ず取り外してください wwwWordPress address (URL)
  • 必ず取り外してください wwwBlog 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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top