Народ, все знают что нужен 301 редирект противи дублей, на самом сайте он у меня настроен-

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


НО есть же еще второй .htacess который находится непосредственно в папке форума и получается сейчас что-
http://www.xxx.ru/phpBB3/index.php
http://www.xxx.ru/phpBB3/
http://xxx.ru/phpBB3/index.php
http://xxx.ru/phpBB3/

это 4 разных страницы.

кто как решал эту проблему?
Комментарии: 16

dotez 08 май 2017, 02:40 Сообщение

я попробовла по аналогии вставить в форумный .htacess но не прошло)
  • 0

CabinetAdmin 08 май 2017, 11:21 Сообщение

Так:

Код: Выделить всё

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /phpBB3/index\.php\ HTTP/
RewriteRule ^phpBB3/index\.php$ http://xxx.ru/phpBB3/ [R=301,L]
Будет переадресация с xxx.ru/phpBB3/index.php на xxx.ru/phpBB3/.

зы. А зачем вам адрес с www? Я в своё время делал обратный редирект.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

dotez 08 май 2017, 13:11 Сообщение

CabinetAdmin писал(а): Так:

Код: Выделить всё

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /phpBB3/index\.php\ HTTP/
RewriteRule ^phpBB3/index\.php$ http://xxx.ru/phpBB3/ [R=301,L]
Будет переадресация с xxx.ru/phpBB3/index.php на xxx.ru/phpBB3/.

зы. А зачем вам адрес с www? Я в своё время делал обратный редирект.
а это надо вставлять в htacess котоырй в папке форума или который в корне сайта?
  • 0

dotez 08 май 2017, 13:40 Сообщение

засунул вот это в оба .htaccess и ниче не поменялось ВООБЩЕ!

RewriteCond %{HTTP_HOST} ^site.ru/phpBB3/
RewriteRule (.*) http://www.site.ru/phpBB3/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /phpBB3/index\.php\ HTTP/
RewriteRule ^phpBB3/index\.php$ http://www.site.ru/phpBB3/ [R=301,L]
  • 0

dotez 08 май 2017, 13:50 Сообщение

в общем на галвной у меня .htaccess сейчас вот так выглядит-

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ххх.ru
RewriteRule (.*) http://www.ххх.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.htm\ HTTP/
RewriteRule ^index\.htm$ http://www.ххх.ru/ [R=301,L]
RewriteCond %{HTTP_HOST} ^ххх.ru/phpBB3/
RewriteRule (.*) http://www.ххх.ru/phpBB3/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /phpBB3/index\.php\ HTTP/
RewriteRule ^phpBB3/index\.php$ http://www.ххх.ru/phpBB3/ [R=301,L]

работате только первая часть кода) все что дальше с phpBB3 оно все НЕ редиректится...
  • 0

CabinetAdmin 08 май 2017, 15:10 Сообщение

В который в папке с форумом. То что относится к форуму, должно лежать в форумной папке, а та часть которая к сайту в корне.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

dotez 08 май 2017, 15:21 Сообщение

CabinetAdmin писал(а): В который в папке с форумом. То что относится к форуму, должно лежать в форумной папке, а та часть которая к сайту в корне.
добавил только в него во т такие строки в самый верх-
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sss.ru/phpBB3/
RewriteRule (.*) http://www.sss.ru/phpBB3/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /phpBB3/index\.php\ HTTP/
RewriteRule ^phpBB3/index\.php$ http://www.sss.ru/phpBB3/ [R=301,L]

и ничего не изменилось вообще...
  • 0

CabinetAdmin 08 май 2017, 22:22 Сообщение

А если так:

Код: Выделить всё

RewriteCond %{HTTP_HOST} ^sss.ru/phpBB3/$ [NC]
RewriteRule ^(.*)$ http://www.sss.ru/phpBB3/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /phpBB3/index\.php\ HTTP/
RewriteRule ^phpBB3/index\.php$ http://www.sss.ru/phpBB3/ [R=301,L]
Плюс, в самый верх файла не обязательно, в самом начале файла уже есть включение:

Код: Выделить всё

<IfModule mod_rewrite.c>
RewriteEngine on
т.е. второй раз RewriteEngine on добавлять в файл не нужно, можно просто добавить новый код сразу после него.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

dotez 08 май 2017, 22:43 Сообщение

CabinetAdmin писал(а): А если так:

Код: Выделить всё

RewriteCond %{HTTP_HOST} ^sss.ru/phpBB3/$ [NC]
RewriteRule ^(.*)$ http://www.sss.ru/phpBB3/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /phpBB3/index\.php\ HTTP/
RewriteRule ^phpBB3/index\.php$ http://www.sss.ru/phpBB3/ [R=301,L]
Плюс, в самый верх файла не обязательно, в самом начале файла уже есть включение:

Код: Выделить всё

<IfModule mod_rewrite.c>
RewriteEngine on
т.е. второй раз RewriteEngine on добавлять в файл не нужно, можно просто добавить новый код сразу после него.
неа.. у меня такое ощущение что в htaccess который в папке форум вообде редиретк никакой не работает потмоу что нкиакие комбинации ни дают вообще эффекта....

вот веьс мой код htaccess котоырй в папке форума

Код: Выделить всё

<IfModule mod_rewrite.c>

RewriteEngine on


RewriteCond %{HTTP_HOST} ^site.ru/phpBB3/
RewriteRule (.*) http://www.site.ru/phpBB3/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /phpBB3/index\.php\ HTTP/
RewriteRule ^phpBB3/index\.php$ http://www.site.ru/phpBB3/ [R=301,L]

#
# Uncomment the statement below if URL rewriting doesn't
# work properly. If you installed phpBB in a subdirectory
# of your site, properly set the argument for the statement.
# e.g.: if your domain is test.com and you installed phpBB
# in http://www.test.com/phpBB/index.php you have to set
# the statement RewriteBase /phpBB/
#
#RewriteBase /

#
# Uncomment the statement below if you want to make use of
# HTTP authentication and it does not already work.
# This could be required if you are for example using PHP via Apache CGI.
#
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

#
# The following 3 lines will rewrite URLs passed through the front controller
# to not require app.php in the actual URL. In other words, a controller is
# by default accessed at /app.php/my/controller, but can also be accessed at
# /my/controller
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ app.php [QSA,L]

#
# If symbolic links are not already being followed,
# uncomment the line below.
# http://anothersysadmin.wordpress.com/2008/06/10/mod_rewrite-forbidden-403-with-apache-228/
#
#Options +FollowSymLinks
</IfModule>

# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
# module mod_authz_host to a new module called mod_access_compat (which may be
# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
# We could just conditionally provide both versions, but unfortunately Apache
# does not explicitly tell us its version if the module mod_version is not
# available. In this case, we check for the availability of module
# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
<IfModule mod_version.c>
	<IfVersion < 2.4>
		<Files "config.php">
			Order Allow,Deny
			Deny from All
		</Files>
		<Files "common.php">
			Order Allow,Deny
			Deny from All
		</Files>
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|SolomonoBot|MJ12bot|xpymep) [NC]
RewriteRule .* - [F,L]
</IfModule>
	</IfVersion>
	<IfVersion >= 2.4>
		<Files "config.php">
			Require all denied
		</Files>
		<Files "common.php">
			Require all denied
		</Files>
	</IfVersion>
</IfModule>
<IfModule !mod_version.c>
	<IfModule !mod_authz_core.c>
		<Files "config.php">
			Order Allow,Deny
			Deny from All
		</Files>
		<Files "common.php">
			Order Allow,Deny
			Deny from All
		</Files>
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|SolomonoBot|MJ12bot|xpymep) [NC]
RewriteRule .* - [F,L]
</IfModule>
	</IfModule>
	<IfModule mod_authz_core.c>
		<Files "config.php">
			Require all denied
		</Files>
		<Files "common.php">
			Require all denied
		</Files>
	</IfModule>
</IfModule>
  • 0

dotez 08 май 2017, 22:48 Сообщение

мне посоветовали закомментировать вот эти строки-
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)$ app.php [QSA,L]


НО они за что вообще овтечают? не станет ли хуже?
  • 0

dotez 08 май 2017, 23:44 Сообщение

appPHP я понял что нельзя закомментировать так как у меня расширения на него подвязаны
  • 0

dotez 09 май 2017, 00:31 Сообщение

КабинетАдмина а вы в курсе кстати что у вас
http://cabinetadmina.ru/index.php
http://cabinetadmina.ru/
тоже не редиректятся между собой)
  • 0

CabinetAdmin 09 май 2017, 08:09 Сообщение

А зачем? На имени домена у меня портал, а на index.php список форумов.
dotez писал(а): никакой не работает
Вот не знаю на счёт первых строк, а вот вторые две:

Код: Выделить всё

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /phpBB3/index\.php\ HTTP/
RewriteRule ^phpBB3/index\.php$ http://www.site.ru/phpBB3/ [R=301,L]
однозначно рабочие, вот почему они не срабатывают, я к сожалению не скажу...
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

dotez 11 май 2017, 00:21 Сообщение

удалось убрать у форума index.php вот таким макаром-

Код: Выделить всё

Options +FollowSymLinks 
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ /%1 [R=301,L]
www и без www пока не удается реализовать(
  • 0

Похожие темы