URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 2560
[ Назад ]

Исходное сообщение
"Redirect"

Отправлено casufi , 07-Авг-04 19:10 
Подскажите пожалуйста, возможно ли наситроить такой редирект:
Посетитель, когда заходит на любую страницу сайта http://somesite.com будет перенаправлен на страницу http://somesite.com/messages/coming.html.

Содержание

Сообщения в этом обсуждении
"Redirect"
Отправлено ees , 07-Авг-04 19:28 
>Подскажите пожалуйста, возможно ли наситроить такой редирект:
>Посетитель, когда заходит на любую страницу сайта http://somesite.com будет перенаправлен на страницу
>http://somesite.com/messages/coming.html.

mod_rewrite


"Redirect"
Отправлено casufi , 07-Авг-04 19:54 

>mod_rewrite

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

Что такое символы "^/u/([^/]+)/?(.*)" где подробно прочитать о том, как их использовать. (Я так понял что это регулярные выражения, но я абсолютно не ориентируюсь как с ними обращатся).

Ткните пожалуйста носом в ссылку.



"Redirect"
Отправлено ees , 07-Авг-04 19:57 
>
>>mod_rewrite
>
>Про mod_rewrite я читал, но не особо понял, немогли бы вы ткнуть
>носом на подробное описание как пользоватся этой диррективой.
>
>Что такое символы "^/u/([^/]+)/?(.*)" где подробно прочитать о том, как их использовать.
>(Я так понял что это регулярные выражения, но я абсолютно не
>ориентируюсь как с ними обращатся).
>
>Ткните пожалуйста носом в ссылку.


http://security.opennet.ru/openforum/vsluhforumID3/1144.html


"Redirect"
Отправлено casufi , 07-Авг-04 20:47 

>http://security.opennet.ru/openforum/vsluhforumID3/1144.html
Спасибо, но там вообще не описываются рег_експы. Собственно Сам синтаксиси редиректа я понял, но как написать правило абсолютно непонятно, как я уже говорил я абсолютно немогу понять , что обозначают знаки вида "^/u/([^/]+)/?(.*)", Можно ли где почитать на русском языке как их использовать


"Redirect"
Отправлено casufi , 07-Авг-04 21:55 
>>
>>>mod_rewrite
>>
>
>http://security.opennet.ru/openforum/vsluhforumID3/1144.html

Практически разобрался, подскажите пожалуйста мне нужно в следуюущем сценарии        
RewriteEngine  on
RewriteBase     /
RewriteRule     ^/new/comingsoon.htm$  /new/comingsoon.htm$ [R=permanent]

Так вот в последней строке надо написать так, что если человек заходит на ссылку которая не равна написанной /new/comingsoon.htm его необходимо перенаправить на страницу /new/comingsoon.htm



"Redirect"
Отправлено ees , 08-Авг-04 17:59 
Если это разовая проблемма.
Может легче сделать
DirectoryIndex /new/comingsoon.htm

"Redirect"
Отправлено casufi , 08-Авг-04 18:54 
>Если это разовая проблемма.
>Может легче сделать
>DirectoryIndex /new/comingsoon.htm

Не думаю что это поможет, ведь мне необходимо перенаправлять посетителя с любого файла или подпапки на заданный файл. А то что ты сказал будет работать только для УРЛ

http://www.mysite.com/


"Redirect"
Отправлено StingFire , 09-Авг-04 11:13 
RewriteRule .* new/comingsoon.html [L]

"Redirect"
Отправлено casufi , 09-Авг-04 15:49 
>RewriteRule .* new/comingsoon.html [L]

Если я помещаю текст  который вы привели то страницы выдает ошибку 500
RewriteEngine  on
RewriteBase     /
RewriteRule     .* /test.html [L]

Если же я правлю это текст так , что бы он был похож на тот который в документации
RewriteEngine  on
RewriteBase     /
RewriteRule     ^(.*)/$ /test.html [L]
Редирект просто не работает.
Может я что то неправильно понял, но редирект такого вида и не должен работать, потому, как когда броузер зайдет на страницу http://www.mysite.com/test.html то он будет перенаправлятся на эту же страницу, тоесть попросу зациклится и вылетит с ошибкой.

Тоесть в RewriteRule надо указать правило вида

RewriteRule     ^если не /test.html$ пернаправит на /test.html [L]
но как задать условие если не ?? и возможно ли это в принципе.


"Redirect"
Отправлено StingFire , 10-Авг-04 12:23 
>>RewriteRule .* new/comingsoon.html [L]
>
>Если я помещаю текст  который вы привели то страницы выдает ошибку
>500
>RewriteEngine  on
>RewriteBase     /
>RewriteRule     .* /test.html [L]
>
Проблема в том, что ты пишешь /test.html, а не test.html. В RewriteRule попадает путь относительно RewriteBase, то есть без слеша в начале в твоем случае. Поэтому у тебя получается два слеша.

>Может я что то неправильно понял, но редирект такого вида и не
>должен работать, потому, как когда броузер зайдет на страницу http://www.mysite.com/test.html то
>он будет перенаправлятся на эту же страницу, тоесть попросу зациклится и
>вылетит с ошибкой.

Нет, не зациклится... Он их 1 раз проходит. Тем более там L стоит. См.
http://httpd.apache.org/docs/mod/mod_rewrite.html.en#Rewrite...
>но как задать условие если не ?? и возможно ли это в
>принципе.

Можно... RewriteCond. Только зачем? См. там же:
You can prefix the pattern string with a '!' character (exclamation mark) to specify a non-matching pattern.