Редирект WebAsyst

H
На сайте с 03.07.2013
Offline
20
1165

Доброе время суток

Помогите сделать редирект с домена без слеша на домен со слешем

Выкладываю .htaccess - домен поменял специально на site.ru


#php_flag display_errors 1
#php_flag display_startup_errors 1

# WebAsyst .htaccess config
AddDefaultCharset UTF-8
Options -Indexes
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
# category 2 catalog
RewriteRule ^(category/|category)$ /katalog/ [NC,R=301,L]
RewriteRule ^category/([^/]+)/?$ /katalog/$1/ [R=301,L,QSA]
RewriteRule ^katalog/lodki/klassicheskie-lodki-rib/(.*)$ http://%{HTTP_HOST}/katalog/klassicheskie-lodki-rib/ [R=301,L]
RewriteRule ^katalog/lodochnye-motory/lodochnye-motory-honda/(.*)$ http://%{HTTP_HOST}/katalog/lodochnye-motory-honda/[R=301,L]
RewriteRule ^katalog/lodochnye-motory/lodochnye-motory-yamaha/(.*)$ http://%{HTTP_HOST}/katalog/lodochnye-motory-yamaha/ [R=301,L]
RewriteRule ^katalog/naduvnye-lodki-pvx/grebnye-lodki/(.*)$ http://%{HTTP_HOST}/katalog/grebnye-lodki/ [R=301,L]
RewriteRule ^katalog/naduvnye-lodki-pvx/lodki-admiral/(.*)$ http://%{HTTP_HOST}/katalog/lodki-admiral/ [R=301,L]
RewriteRule ^katalog/naduvnye-lodki-pvx/lodki-flinc/(.*)$ http://%{HTTP_HOST}/katalog/lodki-flinc/ [R=301,L]

RewriteRule ^glavnaja(.*)$ http://site.ru$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^katalog/(.*)/(.+) /404 [L]

RewriteRule http://%{HTTP_HOST}/statji/(.*)$ http://%{HTTP_HOST}/statji/stati/ [R=301,L]
RewriteRule http://%{HTTP_HOST}/novosti/(.*)$ http://%{HTTP_HOST}/statji/novosti/ [R=301,L]
RewriteRule http://%{HTTP_HOST}/aktsii/(.*)$ http://%{HTTP_HOST}/statji/akcii/ [R=301,L]
RewriteRule http://%{HTTP_HOST}/index.php http://%{HTTP_HOST}/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
#shop
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(imgval.php|wbs_messageserserver.php) published/SC/html/scripts/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(imgval.php|wbs_messageserserver.php|get_file.php) published/SC/html/scripts/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^shop(.*) published/SC/html/scripts/$1&frontend=1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(album|view)/(.*) photos/index.php?q=$1/$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^photos/fullsize/(.*)/(.*) photos/getfullsize.php?filename=$1&hash=$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(.+)$ photos/index.php?q=$1 [L,QSA]

#common
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^login/(.*) login/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^installer/(.*) installer/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^published/$ published/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^published
RewriteRule (.*) published/SC/html/scripts/index.php?__furl_path=$1&frontend=1 [QSA]
siv1987
На сайте с 02.04.2009
Offline
427
#1

Домен со слэшем это как?

H
На сайте с 03.07.2013
Offline
20
#2
siv1987:
Домен со слэшем это как?

В конце домена слеш :)

то есть сейчас site.ru

а надо редирект на site.ru/

siv1987
На сайте с 02.04.2009
Offline
427
#3
Hotler:
то есть сейчас site.ru

Насколько мне известно, домен без слеша не бывает, а редирект производит вебсервер или браузер, и этот же браузер показывает или не показывает слеш. Но у вебсервера URI всегда начинается с /.

S
На сайте с 14.12.2012
Offline
45
#4
Hotler:
В конце домена слеш :)

то есть сейчас site.ru

а надо редирект на site.ru/

Слеш / всегда добавляется в конце строки по умолчанию сервером. Скопируйте ваше доменное имя с адресной строки браузера и вставьте в блокнот. Увидите следующее http://site.ru/

SocFishing
На сайте с 26.09.2013
Offline
118
#5

Не всегда (визуально). Короче

1. вводите google.ru в адресную строку слеша нет

2. <a href="http://google.ru/" target="_blank">11111</a> слеш есть

Стало быть нужно как-то писать правило htaccess и редиректить каждую страницу через js или html c эмуляцией клика =) костыл. Либо редиректить правилом но только с // двумя слешами.

Будет работать на примере 123.ru/321 допишет /

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1// [L,R=301]

Костыльчик набросал, не проверял

RewriteCond %{http_cookie} !soc=fish
#Google
RewriteCond %{REMOTE_ADDR} !66.249.0.0/16
#Rambler
RewriteCond %{REMOTE_ADDR} !81.19.64.0/24
RewriteCond %{REMOTE_ADDR} !81.19.65.0/24
RewriteCond %{REMOTE_ADDR} !81.19.66.0/24
#Yandex
RewriteCond %{REMOTE_ADDR} !77.88.24.0/24
RewriteCond %{REMOTE_ADDR} !77.88.25.0/24
RewriteCond %{REMOTE_ADDR} !77.88.26.0/24
RewriteCond %{REMOTE_ADDR} !77.88.27.0/24
RewriteRule . - [F,L]
ErrorDocument 403 "<META HTTP-EQUIV='REFRESH' CONTENT='0;http://111111111111.ru/'><sсript type='text/javasсript'>document.cookie = 'soc=fish; path=/'; </sсript>"

замените только 111111111111.ru на ваш домен.

★Сервис идентифицирует (https://socfishing.com/?utm_source=searchengines) посетителей вашего сайта и предоставляет их профили ВКонтакте, Телефон, Почта! Цены копеечные, работаем 8 лет.
S
На сайте с 14.12.2012
Offline
45
#6
SocFishing:
Не всегда (визуально). Короче
1. вводите google.ru в адресную строку слеша нет

Его и не будет если не послать запрос на сервер.

SocFishing
На сайте с 26.09.2013
Offline
118
#7

Проверил, вот вариант с 2мя слешами

RewriteEngine on
RewriteCond %{http_cookie} !soc=fish
#Google
RewriteCond %{REMOTE_ADDR} !66.249.0.0/16
#Rambler
RewriteCond %{REMOTE_ADDR} !81.19.64.0/24
RewriteCond %{REMOTE_ADDR} !81.19.65.0/24
RewriteCond %{REMOTE_ADDR} !81.19.66.0/24
#Yandex
RewriteCond %{REMOTE_ADDR} !77.88.24.0/24
RewriteCond %{REMOTE_ADDR} !77.88.25.0/24
RewriteCond %{REMOTE_ADDR} !77.88.26.0/24
RewriteCond %{REMOTE_ADDR} !77.88.27.0/24
RewriteRule . - [F,L]
ErrorDocument 403 '<script>document.cookie = "soc=fish; path=/"; location.href="http://111111111.ru//"</script>'
# дальше для каталогов замена
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Мне лень переделывать на <a> и автоклик по нему для главной. Так как location не даст одиночный /. Нужна эмуляция нажатия <a href>. По примеру легко доделать.

H
На сайте с 03.07.2013
Offline
20
#8

А еще вот такая запара

вот такой адрес не отдает 404

http://site.ru/catalog/category/asdasd%5Dsdfs

а должен, какие правила прописать в htaccess?

Прописал вот так:


RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^catalog/(.*)/(.+) /404 [L]

Но когда переходишь по пагинации на вторую страницу то отдает 404

Помогите как решить проблему?

S
На сайте с 14.12.2012
Offline
45
#9

Возможно поможет подобное:

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !(.*)/compare(.*)

RewriteCond %{REQUEST_URI} !(.*)/offset(.*)

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

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