Как убрать точку в конце урл? htaccess

12
F
На сайте с 15.03.2014
Offline
16
7298

Всем доброго времени суток!

помогите плиз... никак не могу настроить правило...

необходимо, чтобы автоматически убиралась точка, которая стоит в конце урл..

например

mail.ru. перебрасывает на mail.ru

https://news.mail.ru/economics/21190451/. на https://news.mail.ru/economics/21190451/

и т.п.

заранее спасибо.

[umka]
На сайте с 25.05.2008
Offline
456
#1

mail.ru. не перебрасывает на mail.ru

На самом деле это браузер скрывает точку на конце доменного имени.

Фактически, точка есть на конце любого полного доменного имени (FQDN).

А чтобы убрать точку в конце урла, можно сделать редирект

RewriteEngine on

RewriteRule ^(.*)\.$ /$1 [R=301,L]

Лог в помощь!
F
На сайте с 15.03.2014
Offline
16
#2

спасибо.

только не работает....

пробую на локальном сайте (на всякий случай)... не убирает (((

работает вот так

RedirectMatch permanent /(.*)\.$ /$1

но, как я понимаю, это не очень корректно... для htaccess

---------- Добавлено 26.02.2015 в 00:25 ----------

[umka:
На самом деле это браузер скрывает точку на конце доменного имени.
Фактически, точка есть на конце любого полного доменного имени (FQDN).

а вот тут не скрывает

http://mara-nova.ru.

[umka]
На сайте с 25.05.2008
Offline
456
#3
find:
спасибо.
только не работает....
пробую на локальном сайте (на всякий случай)... не убирает (((

А у меня работает.

У вас mod_rewrite подключен?

Или есть ещё какие-нибудь предшествующие директивы в .htaccess?

find:
RedirectMatch permanent /(.*)\.$ /$1
но, как я понимаю, это не очень корректно... для htaccess

Это тоже самое, по сути.

find:
а вот тут не скрывает
http://mara-nova.ru.

Может, не все браузеры скрывают или передают/не передают в запросе, в имени хоста. Тогда на стороне сервера есть возможность средиректить.

F
На сайте с 15.03.2014
Offline
16
#4
[umka:
;13534110]У вас mod_rewrite подключен?

кхм... если остальные правила выполняются, то скорее всего да... или это не связано?

[umka:
;13534110]Или есть ещё какие-нибудь предшествующие директивы в .htaccess?

я вывел отдельным блоком...

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteRule ^(.*)\.$ /$1 [R=301,L]

</IfModule>

[umka:
;13534110]Это тоже самое, по сути.

а как может мой вариант работать, а Ваш нет? при том, что переадресации выше типа

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{REQUEST_URI} !(/page*)

RewriteRule (.*)\/([0-9]+)$ $1 [R=301,L]

RewriteRule ^category\/blog$ blog [L,R=301]

RewriteRule ^author\/* blog [L,R=301]

</IfModule>

все работают...

[umka:
;13534110]Может, не все браузеры скрывают или передают/не передают в запросе, в имени хоста. Тогда на стороне сервера есть возможность средиректить.

заходил на mail.ru и на указанный пробный домен с хрома... mail корректно отрабатывает получается, а второй - нет... (

---------- Добавлено 26.02.2015 в 00:53 ----------

[umka:
;13534110]Или есть ещё какие-нибудь предшествующие директивы в .htaccess?

просто сам htaccess у меня достаточно большой... там плагины (wordress) по безопасности много чего прописали... ((( не со всем пока еще разобрался... но сам этот блок разместил ближе к концу... Но до блока, который создал сам WP

M
На сайте с 04.12.2013
Offline
223
#5

find, вам все разжевали, а вы говорите, что не работает. Чистите кэш браузера и проверяйте.

я вывел отдельным блоком...

И? Толку от этого ноль. Подставьте написанное для вас правило в ваш блок под "RewriteEngine On".

---------- Добавлено 26.02.2015 в 00:59 ----------

Кстати, у меня тоже браузер не заменяет site.ru. на site.ru – это одно и тоже, а вот это нет: site.ru/. и site.ru/

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
F
На сайте с 15.03.2014
Offline
16
#6
miketomlin:
Чистите кэш браузера и проверяйте.

почистил (более того, зашел через другой браузер) - не работает...

redirectmatch работает, а rewriterule - нет... не убирается точка...

---------- Добавлено 26.02.2015 в 01:10 ----------

miketomlin:
а вот это нет: site.ru/. и site.ru/

не могу у себя проверить...у меня все слеши закрывающие убираются... и если поставить слеш и точку в конце, то она пропадет вместе со слешем... а вот просто точка - остается... (

---------- Добавлено 26.02.2015 в 01:10 ----------

miketomlin:
Подставьте написанное для вас правило в ваш блок под "RewriteEngine On".

тоже попробовал - не помогло...

---------- Добавлено 26.02.2015 в 01:20 ----------

если чуть отвлечься - скажите, плиз, как правильно прописать

RedirectMatch permanent /(.*)\.$ /$1

т.е. как именно необходимо это оформить?

сорри, если тупой вопрос... (((

т.е. надо ли вот так

<IfModule mod_rewrite.c>

RedirectMatch permanent /(.*)\.$ /$1

</IfModule>

или правильно будет заменить на

<IfModule mod_alias.c>

?

просто смущает то, что по идее надо <IfModule mod_alias.c>

но работает корректно и с <IfModule mod_rewrite.c>

M
На сайте с 04.12.2013
Offline
223
#7
не могу у себя проверить...у меня все слеши закрывающие убираются... и если поставить слеш и точку в конце, то она пропадет вместе со слешем... а вот просто точка - остается... (

См. выше. Если просто точка в конце доменного имени, то это нормально. Исчезновение слеша тоже. Я привел не очень удачный пример, т.к. браузеры при обращении к главной (/) обычно скрывают слеш. Кстати, я сейчас проверил и увидел, что перенаправление с /. или /.. на конце делается автоматически без каких либо специальных правил. Нужно посмотреть, это делает сервер или браузеры.

---------- Добавлено 26.02.2015 в 01:41 ----------

Эти модули практически всегда подключены, поэтому можно вообще без If.

F
На сайте с 15.03.2014
Offline
16
#8

господа, ни у кого не появились еще варианты?

вариант

RewriteEngine on

RewriteRule ^(.*)\.$ /$1 [R=301,L]

заработал для реального сайта (на локалхост/имя он так и не стал работать :( ), но он работает только для переадресации урла после /, т.е. site.ru/post. перекидывает на site.ru/post

но site.ru. НЕ перекидывает на site.ru

правило типа

RewriteCond %{HTTP_HOST} !^domain\.zone$

RewriteRule ^(.*)$ http://domain.zone/$1 [L,R=301]

тоже не помогает (((

siv1987
На сайте с 02.04.2009
Offline
427
#9
find:
RewriteRule ^(.*)\.$ /$1 [R=301,L]
но site.ru. НЕ перекидывает на site.ru

А чего он должен перекидывать, если там проверяется REQUEST_URI? Единственная возможность это проверять HTTP_HOST через RewriteCond, но если вы говорите что не работает - значит никак.

F
На сайте с 15.03.2014
Offline
16
#10
siv1987:
А чего он должен перекидывать, если там проверяется REQUEST_URI? Единственная возможность это проверять HTTP_HOST через RewriteCond, но если вы говорите что не работает - значит никак.

может я что-то напутал? может неверно условия прописал...

помогите плиз советом начинающему ))))

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий