Вопрос по .htaccess

12
L
На сайте с 19.01.2014
Offline
0
945

Здравствуйте, мой вопрос звучит следующим образом:

Есть url:

1)sait.ru/component/forum/voprosy/

и

2)sait.ru/faq/voprosy/

Так вот, один и тот же контент доступен по обоим адресам, но мне необходимо чтобы он был доступен лишь по 2-му. Можно ли это сделать через редирект в файле .htaccess, и если можно, то как?

G-and-Y
На сайте с 29.06.2013
Offline
185
#1

Наверное нужно по 1

тогда так в htaccess прописать

Redirect 301 /component/forum/voprosy/ http://sait.ru/faq/voprosy/



---------- Добавлено 20.01.2014 в 00:46 ----------

У меня тоже ворпос по теме


1
RewriteCond %{HTTP_USER_AGENT} libwww-perl [OR]
RewriteRule ^(.*)$ - [F,L]
2
RewriteCond %{HTTP_USER_AGENT} ^.*Wget [OR]
RewriteRule ^.* — [F,L]

Есть 2 варианта бана какой правильный или какой лучше и чем они отличаются?

Абузо-устойчивые впс ( http://vps-hosting.lv/?p=13408 )
L
На сайте с 19.01.2014
Offline
0
#2

Так получится лишь для 1 ссылки, но у меня есть вложенные категории и я не могу для каждой прописывать данный редирект, нужно какое-то правило, которое бы определяло наличие слов component/forum и заменяло бы их во всех ссылках на faq

---------- Добавлено 20.01.2014 в 01:00 ----------

На самом деле только что проверил и оказалось что я все слишком усложнял, редирект работает во всех случаях. Спасибо G-and-Y!

siv1987
На сайте с 02.04.2009
Offline
427
#3
G-and-Y:
Есть 2 варианта бана какой правильный или какой лучше и чем они отличаются?

Вы специально их подобрали, типа найди десять отличий?

1

RewriteCond %{HTTP_USER_AGENT} libwww-perl [OR]

RewriteRule ^(.*)$ - [F,L]

2

RewriteCond %{HTTP_USER_AGENT} ^.*Wget [OR]

RewriteRule ^.* — [F,L]

Флаг OR здесь не нужен, потому что RewriteCond тут единственная запись

- и — в данном случае два разных символа, здесь это может иметь значение.

G-and-Y
На сайте с 29.06.2013
Offline
185
#4
Вы специально их подобрали

Не просто к примеру

я так и не понял как правильно так?

RewriteCond %{HTTP_USER_AGENT} ^.*Wget

RewriteRule ^.* - [F,L]

RomantikJo
На сайте с 19.01.2014
Offline
1
#5

Ну, вроде, верно по сути получается.

G-and-Y
На сайте с 29.06.2013
Offline
185
#6
RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot
RewriteCond %{HTTP_USER_AGENT} ^.*ia_archiver
RewriteCond %{HTTP_USER_AGENT} ^.*AhrefsBot
RewriteCond %{HTTP_USER_AGENT} ^.*SolomonoBot
RewriteRule ^(.*)$ - [F,L]

так пойдет?

siv1987 жду вашего ответа вы для меня авторитет в этой ветке :)

siv1987
На сайте с 02.04.2009
Offline
427
#7
G-and-Y:
я так и не понял как правильно так?

Правильно и так, и так (только без флага OR). Первый вариант запрещает по юзерагенту который содержит libwww-perl, второй вариант - юзерагент который содержит Wget.

G-and-Y:
так пойдет?

Тут уже нужно добавить OR, иначе получится логическое условие AND.

RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [OR]

RewriteCond %{HTTP_USER_AGENT} ^.*ia_archiver [OR]

RewriteCond %{HTTP_USER_AGENT} ^.*AhrefsBot [OR]

RewriteCond %{HTTP_USER_AGENT} ^.*SolomonoBot

RewriteRule ^(.*)$ - [F,L]

G-and-Y
На сайте с 29.06.2013
Offline
185
#8

в очередной рас спс

Первый вариант запрещает по юзерагенту который содержит libwww-perl, второй вариант - юзерагент который содержит Wget.

Юзерагенты я привел в пример разные по ошибке, я хотел разобраться с этими [OR] и ^.* , теперь все понял спс!

G-and-Y
На сайте с 29.06.2013
Offline
185
#9

Гулять так гулять, еще 2 вопроса

1. Какая разница между этими 2 способами? и какой лучше?

2. И какой программой лучше анализировать логи?

RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*ia_archiver [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*AhrefsBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*archive.org_bot [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*SputnikBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Ezooms [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*SolomonoBot
RewriteRule ^(.*)$ - [F,L]
<IfModule mod_setenvif.c>
SetEnvIfNoCase User-Agent SolomonoBot ban
SetEnvIfNoCase User-Agent Ezooms ban
SetEnvIfNoCase User-Agent SputnikBot ban
SetEnvIfNoCase User-Agent archive.org_bot ban
SetEnvIfNoCase User-Agent MJ12bot ban
SetEnvIfNoCase User-Agent ia_archiver ban
<Limit GET POST>
Order Allow,Deny
Allow from all
Deny from env=ban
</Limit>
</IfModule>
siv1987
На сайте с 02.04.2009
Offline
427
#10
G-and-Y:
Какая разница между этими 2 способами?

Ну тут и так понятно в чем разница - первый способ использует mod_rewrite, второй - mod_setenvif. Какой лучше? Хз. Тоже самое что лучше - теплое или мягкое?..

Имхо, мод реврайт предназначен для преобразования ссылок, поэтому если нужно просто запретить доступ к сайту, то наверное второй способ, так как реврайты нам тут не нужны.

12

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