Подскажите пожалуйста, возможно ли наситроить такой редирект:
Посетитель, когда заходит на любую страницу сайта http://somesite.com будет перенаправлен на страницу http://somesite.com/messages/coming.html.
>Подскажите пожалуйста, возможно ли наситроить такой редирект:
>Посетитель, когда заходит на любую страницу сайта http://somesite.com будет перенаправлен на страницу
>http://somesite.com/messages/coming.html.mod_rewrite
>mod_rewriteПро mod_rewrite я читал, но не особо понял, немогли бы вы ткнуть носом на подробное описание как пользоватся этой диррективой.
Что такое символы "^/u/([^/]+)/?(.*)" где подробно прочитать о том, как их использовать. (Я так понял что это регулярные выражения, но я абсолютно не ориентируюсь как с ними обращатся).
Ткните пожалуйста носом в ссылку.
>
>>mod_rewrite
>
>Про mod_rewrite я читал, но не особо понял, немогли бы вы ткнуть
>носом на подробное описание как пользоватся этой диррективой.
>
>Что такое символы "^/u/([^/]+)/?(.*)" где подробно прочитать о том, как их использовать.
>(Я так понял что это регулярные выражения, но я абсолютно не
>ориентируюсь как с ними обращатся).
>
>Ткните пожалуйста носом в ссылку.
http://security.opennet.ru/openforum/vsluhforumID3/1144.html
>http://security.opennet.ru/openforum/vsluhforumID3/1144.html
Спасибо, но там вообще не описываются рег_експы. Собственно Сам синтаксиси редиректа я понял, но как написать правило абсолютно непонятно, как я уже говорил я абсолютно немогу понять , что обозначают знаки вида "^/u/([^/]+)/?(.*)", Можно ли где почитать на русском языке как их использовать
>>
>>>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
Если это разовая проблемма.
Может легче сделать
DirectoryIndex /new/comingsoon.htm
>Если это разовая проблемма.
>Может легче сделать
>DirectoryIndex /new/comingsoon.htmНе думаю что это поможет, ведь мне необходимо перенаправлять посетителя с любого файла или подпапки на заданный файл. А то что ты сказал будет работать только для УРЛ
RewriteRule .* new/comingsoon.html [L]
>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]
но как задать условие если не ?? и возможно ли это в принципе.
>>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.