jkm

Рейтинг
120
Регистрация
20.02.2014

Браузер не отправит в запросе эту часть урл, так что на стороне сервера невозможно узнать было там #info или нет.

В строке с RewriteRule если DOMAIN.ru название домена, а не часть пути к файлу, то явно не хватает http://

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

/abc.php/ => /abc.php


RewriteRule ^(.*\.php)/$ /$1 [L,R=301]
Detektiv:
Ещё момент, то что нагуглил .htaccess - не работает. Даже такой
RewriteEngine on

deny from all

RewriteEngine On просто включает mod_rewrite, но т.к. нету RewriteRule и RewriteCond то и работать там нечему.

Возьмите пример из https://ru.wikipedia.org/wiki/%D0%A5%D0%BE%D1%82%D0%BB%D0%B8%D0%BD%D0%BA и адаптируйте под свои нужды.

.htaccess в папке /files/


RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?site2\.ru/ [NC]
RewriteRule \.txt$ - [L,F]

Убрать из шаблона \.htm

^rubrika/(.+)$

kumpor:

RewriteCond %{THE_REQUEST} ^option\=com\_content$ [NC]
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]

Не работает. >:( Что не так?

Поменять %{THE_REQUEST} на %{QUERY_STRING}

Строку "option=com_content" следует искать в %{QUERY_STRING}. В переменной %{THE_REQUEST} находится полная строка запроса "GET /index.php?option=com_content HTTP/1.1", так что правило будет такое:


RewriteCond %{THE_REQUEST} ^[A-Z]{3,7}\ /index\.php\?option=com_content\ HTTP
RewriteRule ^ http://site.ru/? [R=301,L]

Или так


RewriteCond %{QUERY_STRING} ^option=com_content$
RewriteRule ^index\.php$ http://site.ru/? [R=301,L]

И ставить правило сразу после RewriteEngine on.

Hocok44:
Как думаете, живой?

Как говаривал Зигзаг Маккряк - Отличная авария, восемь с половиной по десятибалльной шкале!

Разместить выше правила с /rubrika/view-page.php


RewriteRule ^rubrika/category/page888\.htm$ /rubrika/page888.htm [R=301,L]

xn--p1ai$/

Символ $ здесь явно не к месту.


RewriteCond %{HTTP_HOST} ^domen\.ru$ [NC]
RewriteRule ^(.*)$ http://punycode.xn--p1ai/$1 [R=301,L]

Если есть возможность править настройки 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/

Всего: 749