Удалить косую черту WordPress веб-сайтов URL

У меня установлены постоянные ссылки 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/, а не на корневом уровне.

Спасибо!

1 ответ

Попробуйте эти правила:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]

RewriteRule ^((?!wp-admin/).+?)/$ /$1 [NC,NE,L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
Другие вопросы по тегам