X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Трудности с .htaccess
OutLooker
OutLooker
Topic Starter сообщение 22.8.2013, 19:20; Ответить: OutLooker
Сообщение #1


Добрый день.

Может задаю тривиальный вопрос, но пока не совсем разобрался в работе RewriteRule, RewriteCond файла .htaccess

На мой сайт несть несколько ссылок вида _http://site.ru/index.html

а сам сайт на php, и по такой ссылке открывается страница с ошибкой 404

Я хочу, чтобы ссылка _http://site.ru/index.html вела на главную страницу _http://site.ru/

Что для этого надо добавить в .htaccess?

Спасибо.


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rom_4
rom_4
сообщение 22.8.2013, 19:32; Ответить: rom_4
Сообщение #2


OutLooker, закройте /index.html в роботсе да и все. Если ее в поиске не будет, то случайно на нее никто не попадет. Только если ручками вбивать специально.

п.с пропустил что уже ссылки есть, голова не варит. а если попросить тех кто ссылки ставил их изменить?

Сообщение отредактировал rom_4 - 22.8.2013, 19:33


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Aleksandrometr
Aleksandrometr
сообщение 22.8.2013, 20:13; Ответить: Aleksandrometr
Сообщение #3


Попробуйте так:
RewriteEngine On
RewriteRule ^index.html$ / [R]


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
OutLooker
OutLooker
Topic Starter сообщение 23.8.2013, 2:37; Ответить: OutLooker
Сообщение #4


Aleksandrometr, спасибо, но не помогло.

Вроде если сделать так:
RewriteRule ^index.html$ /index.php [L,NC]

, то должно переадресовывать на index.php, тут ошибаться-то негде. Наверное что-то мешает в остальном содержимом .htaccess

Всё-таки надеюсь, что найдётся знающий человек и подскажет. На всякий случай привожу свой .htaccess полностью.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^/?(.*) http://%1/$1 [L,R=permanent]
RewriteRule ^index.html$ /index.php [L,NC]

</IfModule>

# END WordPress


Всё работает кроме этой строчки ^index.html$ /index.php

Ещё немного помучился и сделал.
Всё, проблема решена, спасибо!

Сообщение отредактировал OutLooker - 23.8.2013, 2:37


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ortero
Ortero
сообщение 23.8.2013, 8:08; Ответить: Ortero
Сообщение #5


OutLooker, вы бы отписали, как сделали, чтобы потом остальные не мучались.


--------------------
Бегет - просто хороший хостинг, который еще и ssl-сертификат бесплатно дает.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Adriano_123
Adriano_123
сообщение 23.8.2013, 11:58; Ответить: Adriano_123
Сообщение #6


Вот код для редиректа с index.html на главную:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ / [R=301,L]


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
OutLooker
OutLooker
Topic Starter сообщение 24.8.2013, 1:53; Ответить: OutLooker
Сообщение #7


Ortero, отписываюсь. Я просто перенёс строку RewriteRule ^index.html$ /index.php в своём файле сразу после RewriteBase /, на сёрче посоветовали. Получилось следующее:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.html$ /index.php [R,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

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

</IfModule>

# END WordPress


Правда я пока ещё не очень понимаю разницу, но заработало.

Adriano_123, Вы не монли бы подробнее объяснить свой код, просто хочу научиться разбираться в .htaccess, но многое нигде не описано. Вот например, почему недостаточно просто строки
RewriteRule ^index\.html$ / [R=301,L]
, ведь она и делает редирект с index.html на / (главную). А что делает строка
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
?

Спасибо.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Как перенести правила переадресации из .htaccess в php обработчик nginx?
0 KrisGuseva 2097 28.12.2019, 7:33
автор: KrisGuseva
Открытая тема (нет новых ответов) Наладить htaccess на Wordpress
2 LebedevStr 1805 25.5.2017, 14:14
автор: LebedevStr
Открытая тема (нет новых ответов) Нужно настроить редирект с помощью .htaccess
0 Юпис 3318 8.12.2010, 11:06
автор: -Юпис-
Открытая тема (нет новых ответов) как поставить запрет на папку Dle Htaccess?
1 gemkeepers 2607 30.1.2010, 0:01
автор: n1tr1k


 



RSS Текстовая версия Сейчас: 25.4.2024, 0:20
Дизайн