Помогите с 301 редиректом

12 3
D
На сайте с 28.06.2008
Offline
1114
1631

Сайт на Джумле, в корне в пакпе /forum лежит phpBB3.

Главная страница форума доступна по адресам

http://сайт.com/forum/ и http://сайт.com/forum/index.php Чтобы не было дублей решил настроить редирект и что-то не получается. Прописываю так

RewriteCond %{HTTP_HOST} ^www.сайт.com

RewriteRule ^(.*)$ http://сайт.com/$1 [R=permanent,L]

Redirect 301 /forum/index.php http://сайт.com/forum/

RewriteRule ^.htaccess$ - [F]

В итоге при заходе на форум браузре ругается :

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

Что не так делаю?

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

Думаю, должно быть как-то так

RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteRule ^(.*) http://%1/$1 [R=permanent,L,QSA]

RewriteRule ^forum/index.php$ /forum/ [R=repmanent,L]

Доступ к .htaccess перекрывать не нужно - он и так должен по уолчанию перекрываться в конфиге апача.

Лог в помощь!
D
На сайте с 28.06.2008
Offline
1114
#2
'[umka:
;6027050']Думаю, должно быть как-то так

Internal Server Error 500 ошибка :(

Dram добавил 22.12.2009 в 13:15

Да еще хотел спросить. В папке форума тоже есть свой .htaccess, где нужно править?

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

тогда давайте поэтапно.

у меня вот такое точно работает на одном сайте

RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteRule ^(.*) http://%1/$1 [R=permanent,L,QSA]

не забыли RewriteEngine On ?

при ошибке в еррор_лог что пишет?

если по пути от корня сайта до директории, в которой вызываемый скрипт, есть несколько .htaccess, то они могут или наследовать опции друг друга, или приоритет будет иметь только последний .htaccess (в зависимости от того, как настроено)

первые RewriteCond+RewriteRule разумеется нужно класть в .htaccess в корне, а второй RewriteRule (который index.php отсекает) можно куда угоно - или в основной .haccess или в тот, который в директории forum (но тогда правило нужно будет немного изменить)

D
На сайте с 28.06.2008
Offline
1114
#4

В последнем файле .htaccess (в папке форума), вот что

RewriteEngine on
RewriteBase /forum/
php_value memory_limit "32M"
#перенаправление с www.Сайт.com на Сайт.com


RewriteCond %{HTTP_HOST} ^www.Сайт.com
RewriteRule ^(.*)$ http://Сайт.com/$1 [R=permanent,L]



# Standard phpBB3 files matching
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} \.php$
RewriteRule (.+)\.php$ index.php?rb_v=$1&%{QUERY_STRING} [L]
# RokBridge SEF rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+) index.php?$1&%{QUERY_STRING} [L]
php_value log_errors On
php_value error_log error.log

Эррор лог пустой

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

Перенаправление с www.site.com на site.com нужно делать в .htaccess верхнего уровня (того, который лежит в корне сайта), а то он будет работать только на форуме )

Вот и напишите в нём для начала:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.site\.com
RewriteRule ^(.*) http://site.com/$1 [R=permanent,L,QSA]

и проверьте, работает ли редирект при вызове www.site.com

Если вдруг выскакивает ошибка, лог всего этого дела можно включить так:

RewriteLog "/path/to/rewrite_log"

RewriteLogLevel 3
D
На сайте с 28.06.2008
Offline
1114
#6

В корне сайта редирект прописан и работает, в папке форума убрать его?

[umka]
На сайте с 25.05.2008
Offline
456
#7
Dram:
В корне сайта редирект прописан и работает, в папке форума убрать его?

да.

вот теперь в этот же файл добавьте

RewriteRule ^forum/index.php$ /forum/ [R=permanent,L]
D
На сайте с 28.06.2008
Offline
1114
#8
RewriteEngine on
RewriteBase /forum/
php_value memory_limit "32M"

RewriteRule ^forum/index.php$ /forum/ [R=permanent,L]


# Standard phpBB3 files matching
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} \.php$
RewriteRule (.+)\.php$ index.php?rb_v=$1&%{QUERY_STRING} [L]
# RokBridge SEF rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+) index.php?$1&%{QUERY_STRING} [L]
php_value log_errors On
php_value error_log error.log

Это в папке форум - в итоге редиректа не происходит

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

для .htaccess из папки forum нужно писать

RewriteRule ^index.php$ / [R=permanent,L]

:)

D
На сайте с 28.06.2008
Offline
1114
#10
'[umka:
;6027619']для .htaccess из папки forum нужно писать

RewriteRule ^index.php$ / [R=permanent,L]

:)

Теперь редирект идет на главную основного сайат - http://сайт.com

12 3

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