/%postname% までワードプレスのパーマリンクを設定しています (末尾にスラッシュがないことに注意してください)。
ただし、ワードプレスは、特定のページ URL を、末尾にスラッシュがあるバージョンから末尾にスラッシュがないバージョンにリダイレクトしていません。どの Web サイト ヘッダー チェック ツールでも、両方のバージョンに対して「200」(OK) コードが返されます (末尾のスラッシュの有無にかかわらず)。コンテンツの重複による SEO への悪影響が懸念されます。したがって、各ページのバージョンを 1 つだけにしたいと考えています。
wordpress ディレクトリにある .htaccess ファイルを変更して、URL の末尾にある末尾のスラッシュを削除し、URL の末尾のないスラッシュ バージョンにリダイレクトしようとしています。
サイトのルートではなくサブディレクトリにWordpressをインストールしています。
http://mywebsite.com/wordpress/
このウェブサイトに投稿されたさまざまな質問を読んでコンパイルした次のコードを試しました。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
問題は、wordpress admin にログインできないことです。mywebsite.com/wordpress/wp-login.php でユーザー名とパスワードを入力すると
通常、mywebsite.com/wordpress/wp-admin/ にリダイレクトして入力するために使用されます。
しかし、.htaccess に追加したコードによって末尾のスラッシュが /wp-admin/ から取り除かれているため、エラーが発生し、Wordpress にログインできません。
私はこのフォーラムを読み続け、コードをいじって次のことを試しました。今ではワードプレスにログインできますが、特定の URL から末尾のスラッシュが削除されていません。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteCond %{REQUEST_URI} ^/wp-login\.php(.*)$
RewriteCond %{REQUEST_URI} ^/wp-admin$
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
他に何ができるかを誰かに勧めることはできますか?
ワードプレスのログインページ (mywebsite.com/wordpress/wp-login.php) と mywebsite.com/wordpress/wp を除いて、ページの URL の末尾にスラッシュを付けないようにしたい場合は、ほぼすべてです。 -管理者/
Wordpress のインストールは mywebsite.com/wordpress/ にあり、ルート レベルではないことに注意してください。
本当にありがとう!