Удалить слэш из htaccess

извините за мой плохой английский, но я использую переводчик. Я должен удалить (и перенаправить) все URL-адреса с косой чертой на URL-адрес без косой черты

https://www.backupc.it/assistenza-da-remoto/

https://www.backupc.it/assistenza-da-remoto

https://www.backupc.it/aa/

https://www.backupc.it/aa

проблема в том, что оставление косой черты перенаправляет меня на страницу 404, но без css также для существующих страниц (существующих, если есть косая черта, это дает мне ошибку 404)

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} ^www.
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
ErrorDocument 404 /404.html

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
</IfModule>

person Tiziano Moraca    schedule 12.11.2020    source источник
comment
Являются ли assistenza-da-remoto и aa физическими каталогами? Отсутствующий CSS, скорее всего, связан с использованием относительных URL-путей к вашим файлам CSS... см. следующий вопрос в стеке веб-мастеров: webmasters.stackexchange.com/questions/86450/   -  person MrWhite    schedule 12.11.2020


Ответы (1)


Я решил методом проб и ошибок (случайно)

Добавил вторую часть видишь но смысла не понял.. Дело в том что встало на место

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} ^www.
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]


DirectorySlash Off
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)/$ $1 [R=301,L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
ErrorDocument 404 /404.html
</IfModule>
person Tiziano Moraca    schedule 12.11.2020
comment
Поскольку вы удалили последнюю директиву RewriteRule, последняя часть больше недействительна. Директивы RewriteCond и RewriteRule вместе образуют одно правило. ErrorDocument не должно быть в обертке <IfModule>. Фактически, вы должны удалить оболочку <IfModule> (у вас все равно есть некоторые директивы внутри и некоторые снаружи). - person MrWhite; 12.11.2020
comment
Готово, теперь код выглядит чище. Затем, из того, что вы видите, вы можете сказать мне, почему seo-сканеры говорят мне, что я создаю дубликаты страниц для backupc.it и backupc.it/ - person Tiziano Moraca; 12.11.2020
comment
SEO-сканеры ошибаются. example.com и example.com/ по сути являются одним и тем же URL. Строго говоря, это example.com/ (с косой чертой). Однако вы, вероятно, перепутаете сканеры, если будете непоследовательно связываться с обоими. См. этот вопрос в стеке веб-мастеров: webmasters.stackexchange.com/questions/35643/ - person MrWhite; 12.11.2020