У меня есть постоянные ссылки WordPress, настроенные на /% postname% (обратите внимание, что в конце нет косой черты).
Однако wordpress не перенаправляет какой-либо URL-адрес страницы из версии с косой чертой в конце на версию без косой черты. Любой инструмент проверки заголовков веб-сайтов вернет код «200» (ОК) для обеих версий (с косой чертой в конце и без нее). Я обеспокоен негативными последствиями для SEO из-за дублирования контента. Поэтому я хочу иметь только одну версию каждой страницы.
Я пытаюсь изменить файл .htaccess, расположенный в каталоге wordpress, чтобы он удалял завершающую косую черту в конце любого 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. Когда я ввожу свое имя пользователя и пароль на mywebsite.com/wordpress/wp-login.php
обычно он используется для перенаправления и входа на mywebsite.com/wordpress/wp-admin/
Но теперь, поскольку завершающая косая черта удаляется из / wp-admin / кодом, который я добавил в .htaccess, я получаю сообщение об ошибке и не могу войти в Wordpress.
Я продолжал читать эти форумы, а затем попробовал следующее, поиграв с кодом, и теперь я могу войти в 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>
Кто-нибудь может порекомендовать, что еще я могу сделать?
Практически все, что я хочу, если URL-адреса страниц не имеют косой черты в конце URL-адреса, за исключением страницы входа в wordpress (mywebsite.com/wordpress/wp-login.php) и mywebsite.com/wordpress/wp -admin /
Помните, что установка Wordpress находится на mywebsite.com/wordpress/, а не на корневом уровне.
Большое спасибо!