Помогите с файлом .htaccess

OutLooker
На сайте с 11.01.2013
Offline
35
1114

Добрый день!

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

Сам сайт на WP и индекс, естественно http://site.ru/index.php, а ссылка http://site.ru/index.html приводит на страницу 404

Что нужно написать в файле .htaccess, чтобы при переходе по ссылке http://site.ru/index.html попадать на http://site.ru/index.php ?

Я делал так:

RewriteRule ^index.html$ /index.php [L,NC]

не работает, но вроде должно, ошибаться-то и негде (но смог :)). Прошу помочь.

Думаю что не работает из-за остального содержимого моего .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

Всё работает кроме строчки RewriteRule ^index.html$ /index.php [L,NC]

Помогите пожалуйста переадресовать index.html на index.php

Спасибо.

IL
На сайте с 20.04.2007
Offline
435
#1

Выше по коду поднять.. сразу после RewriteBase поставить.

Если редирект нужен

RewriteRule ^index.html$ /index.php [R,L]
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
[umka]
На сайте с 25.05.2008
Offline
456
#2

RewriteRule ^index\.html$ /index.php [R=301,L]

Должно быть сразу после RewriteBase /

Лог в помощь!
OutLooker
На сайте с 11.01.2013
Offline
35
#3

Да, спасибо большое, перенёс выше - и всё заработало.

Вот ещё один маленький вопрос, после этого редиректа в квадратных скобках есть буква R:

[R,L] или [R=301,L]

Это ведь значит, что при таком переходе сервер будет говорить, что произошёл 301-й редирект. А за это моно заработать наказание от поисковых систем?

[umka]
На сайте с 25.05.2008
Offline
456
#4
OutLooker:
А за это моно заработать наказание от поисковых систем?

Где вы про это прочитали? 😮

H2
На сайте с 07.02.2012
Offline
21
#5

Дабы не создавать новый топик, спрошу здесь...

тоже столкнулся с проблемкой


RewriteRule ^artist/(.*)/(.*)/ /demo/album.php?artist=$1&album=$2 [L]

оба параметра artist и album передаются в urlencode, ссылка выглядит таким образом:

http://site.ru/artist/rusko/Woo+Boost/

но если в параметре передаётся слэш, то сервер выдаёт:


The requested URL /artist/rusko/Everyday+/+Lick+The+Lizard/ was not found on this server.
//ссылка выглядит таким образом http://site.ru/artist/rusko/Everyday+%2F+Lick+The+Lizard/

как решить проблему с преобразованием %2F в слэш?

нашёл причину!


По-умолчанию, Apache сразу возвращает ошибку «404 (Not found)», как только встречает в пути страницы закодированный слэш или разделитель %2F для прямого слэша (/) и %5C для обратного (\).

Есть как минимум два способа обойти это ограничение.

Решение 1

Включение параметра AllowEncodedSlashes. Он может помещаться как в серверном конфигурационном файле Apache, так и внутри контейнера VirtualHost. В .htaccess исмользование не допускается.

Решение 2

Второе решение - дополнительно кодировать символ процентов (%25). При этом слэши будут выглядеть как %252F.

Того же эффекта можно достичь путём двойного кодирования функцией PHP urlencode.

источник

Решил проблему вторым способом, но вызывать по два раза urlencode и urldecode - по-моему не есть ок

может есть ещё решения данной проблемы?

OutLooker
На сайте с 11.01.2013
Offline
35
#6
'[umka:
;12072887']Где вы про это прочитали? 😮

Конкретно про это не читал, только читал, что ПС наказывают за 301 редирект, сделанный любым способом.

[umka]
На сайте с 25.05.2008
Offline
456
#7
OutLooker:
Конкретно про это не читал, только читал, что ПС наказывают за 301 редирект, сделанный любым способом.

Вы что-то путаете.

IL
На сайте с 20.04.2007
Offline
435
#8
OutLooker:
только читал, что ПС наказывают за 301 редирект, сделанный любым способом.

Ссылка на источник будет?

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