LINUX.ORG.RU
решено ФорумTalks

[непонятки] .htaccess и mod_rewrite

 


0

1

Я совершенно не понимаю синтаксис сабжа, а нужно сделать банальную заглушку. Суть такова: есть index.html, он доступен по http://sitename/index.html.
Хочу, чтобы (1) index.html отображался на http://sitename/ также, как на http://sitename/index.html, и (2) с любой (без разницы, существующей или несуществующей) страницы сайта был редирект на http://sitename/. Например, я захожу на http://sitename/abracadabra или на http://www.sitename/index.htm и перенаправляюсь в «корень» сайта, где отображается мой index.html. Вот такой вот сайт-одностраничник.
Прочитал, что при помощи файла .htaccess это сделать проще простого, но мне показалось сложновато. Понимаю, что, вероятно спрашиваю «не там», но надеюсь на помощь.

★★★★★
Ответ на: комментарий от Bad_ptr

Я даже не знаю, тянет ли это на web development. Представлял его больше вёрсткой страниц, написанием скриптов, но никак не установкой прав и созданием симлинков.

CYB3R ★★★★★
() автор топика

(1)

RewriteCond   %{REQUEST_FILENAME}       !-d
RewriteCond   %{REQUEST_FILENAME}       !-f
RewriteRule   ^(.*) index.html?%{QUERY_STRING}

kernelpanic ★★★★★
()

А ты действительно уверен, что ты хочешь вообще всё редиректить на /, включая всякие favicon.ico и т.п.? Может, лучше переназначить страницу 404?

Black_Shadow ★★★★★
()
Ответ на: комментарий от Black_Shadow

>включая всякие favicon.ico

А нечего из безусловно запрашивать, если страница не просила :}

Deleted
()
Ответ на: комментарий от YAR

Списибо, но

DirectoryIndex index.html

Не помогает. Я это первым делом нагуглил, но не спасает. Может сую не туда?
Второе перенаправляет всё с site/* на site/, а с http://www.site/* на http://www.site. Хотелось бы тоже на site/.
3) Вообще, до того как получил ответ в топик даже не вспомнил, что на лоре есть отдельный форум под эти дела.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от Black_Shadow

Переназначить страницу 404 я пробовал, но получается, что редиректа не происходит. То есть я остаюсь на странице http://sitename/abracadabra, хотя её содержание берётся из index.html

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от Black_Shadow

Тоесть, сделай страницу 404 такого содержания:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Your Page Title</title>
<meta http-equiv="REFRESH" content="0;url=/"></HEAD>
<BODY>
Optional page text here.
</BODY>
</HTML>
Black_Shadow ★★★★★
()
Ответ на: комментарий от Black_Shadow

Спасибо. Теперь содержание BODY этого файла мелькает, но незаметно.
Содержание .htaccess такое:

ErrorDocument 404 /redirect.html
AddDefaultCharset UTF-8
DirectoryIndex index.html
Но опять же редиректится всё с site/* на site/, а с http://www.site/* на http://www.site. Похоже также сработал DirectoryIndex, но только частично: на www вижу index.html, а без www вижу заглушку хостера.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от Black_Shadow

Спасибо. Очень помогли советы. Теперь всё почти так, как я хотел, но если заходить без www, то упорно вместо index.html показывается страничка хостера. Всё-таки написал в техподдержку хостинга.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

1) Пожалуйста, используй example.com, example.org, или аналогичные для примеров.

2) Технический вопрос в TALKS.

3)

если заходить без www, то упорно вместо index.html показывается страничка хостера

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

ChALkeR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.