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

12
artrozik
На сайте с 19.02.2008
Offline
180
#11

ТС, извини что влезаю, тоже с редиректом чет затупил. Подскажите.

Надо чтобы с site.ru/?o=652&e=0 был редирект на site.ru/?o=757&e=0

С меня спасибо :)

J
На сайте с 20.02.2014
Offline
120
jkm
#12
artrozik:
ТС, извини что влезаю, тоже с редиректом чет затупил. Подскажите.
Надо чтобы с site.ru/?o=652&e=0 был редирект на site.ru/?o=757&e=0
С меня спасибо :)


RewriteEngine On

RewriteCond %{QUERY_STRING} =o=652&e=0
RewriteRule ^$ /?o=757&e=0 [R=301,L]
find:

правило типа
RewriteCond %{HTTP_HOST} !^domain\.zone$
RewriteRule ^(.*)$ http://domain.zone/$1 [L,R=301]

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

Это может не работать, если домен в запросе уже без точки.

Такое возможно если запрос проксирует другой сервер, например nginx.

Сейчас пробывал на nginx/1.7.9

proxy_set_header Host $host;

Точка в конце пропадает.

А если

proxy_set_header Host $http_host;

Точка в конце сохраняется.

http://wiki.nginx.org/HttpProxyModule#proxy_set_header

Для проверки можно создать простой скрипт


<?php
var_dump($_SERVER['HTTP_HOST']);
artrozik
На сайте с 19.02.2008
Offline
180
#13

jkm, спасибо.

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

jkm, да-да.. у меня на nginx

можно для бестолковых...

сейчас у меня открывается сайт по 2 адресам...

сайт.ру

сайт.ру.

точку в конце урл при запросе НЕ главной страницы я убрал...

причем на локалхост работал только RedirectMatch permanent /(.*)\.$ /$1 , а на живом сайте - и redirectmatch и RewriteRule ^(.*)\.$ /$1 [R=301,L]

еще вопрос - правильно ли я поимаю, что если у меня урлы без закрывающего слеша, то надо писать не /$1, а просто $1 ???

J
На сайте с 20.02.2014
Offline
120
jkm
#15

Если есть возможность править настройки nginx, то нужно найти начало блока server с доменом сайт.ру и добавить туда правила для редиректа.


server {
server_name сайт.ру;

if ($http_host != 'сайт.ру') {
return 301 http://сайт.ру$request_uri;
}

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

По поводу /$1 и $1. Первый это абсолютный, а втрой относительный адрес.

Пока .htaccess находится в корне сайта и нет манипуляций с RewriteBase разница между ними незаметна.

Подробнее про RewriteRule и RewriteBase http://habrahabr.ru/company/sprinthost/blog/129560/

12

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