Удалить косую черту 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>