Проблема с index.php в URL - вопрос к специалистам по.htaccess

  • 24 Ответов
  • 1244 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн Аня

  • *****
  • 660
  • [+]32 / [-]0
  • Пол: Женский
  • Копатыч нестабилен!
    • Просмотр профиля
    • Блог переехал
Почему-то не могу убрать index.php из URL сайта. Если включаю Перенаправление URL, все внутренние страницы сайта дают 404. Это создает проблемы.
Во-первых, кастомная 404 не работает, так как ошибочный url должен тоже включать index.php) - иначе белая страница 404 без дизайна.
Во-вторых, 301 редирект не работает. Думаю, это как-то тоже связано с такой настройкой. Потому что урлы без index.php не воспринимаются.
В-третьих - это самое неважное, но интересно для информации. Есть старый сайт, который я переместила на поддомен. Там тоже были index.php в адресах, но его разработчики как-то с этим справились. Как я узнала об этом? Сейчас, на поддомене, открывается только главная старого сайта. Все внутренние - 404. НО. Если вставить в ссылки магический index.php, они откроются!
 http://testnews.tereza.ru/,
внутренние, если их открывать из меню, дают 404: http://testnews.tereza.ru/contact, а вот если добавить туда http://testnews.tereza.ru/index.php/contact
Работа старого сайта не особо нужна, но очевидно, что причина единая и что index.php надо убрать из адресов
Вопрос - как?
Fatal error - это фатально!!!!

*

Оффлайн evgen777

  • *****
  • 691
  • [+]62 / [-]2
  • Пол: Мужской
  • skype:evgeniy8955 mail:office@sevweb.tk
    • Просмотр профиля
Так у вас .htaccess в корне сайта есть хоть?
Разработка, доработка расширений для Joomla!
Рекомендую доступные VPS для Joomla

Щадящее выпиливание index.php из URL:

RewriteCond %{REQUEST_URI} ^/index.php/.* [NC]
RewriteRule .? - [F]

При таком подходе останется только ^/index.php$, но доступ к нему ограничивать не стоит, пусть он будет. А в robotx.txt запретите индексацию этой страницы.

Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

*

Оффлайн SDKiller

  • ******
  • 2748
  • [+]325 / [-]5
  • Пол: Мужской
  • ...ergo sum
    • Просмотр профиля
    • Jexy.ru
А mod_rewrite включен на сервере?

*

Оффлайн Аня

  • *****
  • 660
  • [+]32 / [-]0
  • Пол: Женский
  • Копатыч нестабилен!
    • Просмотр профиля
    • Блог переехал
.htaccess конечно есть. Все вообще как обычно. А вот насчет mod rewrite не знаю. Мне заказчики дали избирательный доступ, к панели управления хостинга доступа нет, чтобы посмотреть, что там включено. Было бы классно, если бы он не был включен, это бы все объяснило, и что индекс нельзя убрать и что 301 редирект не работает.
Но если я пишу вместо tereza.ru tereza.ru/index.php открывается все-таки tereza.ru без индекса. Это значит, что mod rewrite включен? Или не значит?
И когда был старый сайт на основном домене, там отсутствовал index.php в адресах, то есть какая-то директива работала по его ликвидации. А сейчас старый сайт в подпапке и эта директива не работает, и все его внутренние страницы открываются только с индексом
« Последнее редактирование: 10.04.2016, 23:32:01 от Аня »
Fatal error - это фатально!!!!

*

Онлайн voland

  • ********
  • 9939
  • [+]520 / [-]101
  • Пол: Мужской
  • СКАЙП утерян! Пишите в телеграм @volandku
    • Просмотр профиля
    • webstudio.pro

*

Оффлайн Аня

  • *****
  • 660
  • [+]32 / [-]0
  • Пол: Женский
  • Копатыч нестабилен!
    • Просмотр профиля
    • Блог переехал
Завтра пойду к ним в офис и выясню. Я бы очень порадовалась, если дело просто в отключенном mod rewrite.
Fatal error - это фатально!!!!

Там ещё вначале должна быть такая строчка RewriteEngine on  ;D
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

*

Оффлайн Аня

  • *****
  • 660
  • [+]32 / [-]0
  • Пол: Женский
  • Копатыч нестабилен!
    • Просмотр профиля
    • Блог переехал
Да все есть, все нормально. Совершенно стандартная ситуация, стандартная свежая Joomla со всем, что там полагается.
Fatal error - это фатально!!!!

*

Оффлайн Аня

  • *****
  • 660
  • [+]32 / [-]0
  • Пол: Женский
  • Копатыч нестабилен!
    • Просмотр профиля
    • Блог переехал
На хостинге говорят, что mod_rewrite включен
Fatal error - это фатально!!!!

*

Оффлайн SeBun

  • ********
  • 3223
  • [+]189 / [-]5
  • Пол: Мужской
  • @SeBun48
    • Просмотр профиля
Что за хостинг? Если там файл не htaccess.txt а именно .htaccess, и если в этом файле RewriteEngine включен, то RewriteCond и RewriteRule (как показал выше Филипп Сорокин) внутри должны обрабатываться и адрес должен принимать нужный вид. Если этого не происходит, значит стоит какой то запрет на управление сервером через .htaccess или его отдельных команд. Это уже не ваша задача - сообщите об этом клиенту и пусть сами разбираются с хостером.

Второй вариант:

И когда был старый сайт на основном домене, там отсутствовал index.php в адресах, то есть какая-то директива работала по его ликвидации. А сейчас старый сайт в подпапке и эта директива не работает, и все его внутренние страницы открываются только с индексом

Собственно, где у вас находится этот .htaccess и какова у вас структура сайта? Сколько всего файлов .htaccess?
« Последнее редактирование: 11.04.2016, 16:06:45 от SeBun »
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

Оффлайн Аня

  • *****
  • 660
  • [+]32 / [-]0
  • Пол: Женский
  • Копатыч нестабилен!
    • Просмотр профиля
    • Блог переехал
.htaccess один, обычный джумловский, переименованный. Хостинг 1gb.ru
В настоящее время основной сайт, который на Joomla, в папке http, а старый  в подпапке
Fatal error - это фатально!!!!

*

Оффлайн SeBun

  • ********
  • 3223
  • [+]189 / [-]5
  • Пол: Мужской
  • @SeBun48
    • Просмотр профиля
.htaccess один, обычный джумловский, переименованный
Где он находится? В папке основного сайта или подпапке?

Я думаю, вы быстрее получите ответ, если напишите сюда: support@1gb.ru. Они могут глянуть, что там у вас с этим .htaccess и дать нужный совет.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

Оффлайн almika

Возможно, на хостинге указано в конфигурации сервера что-то типа:
Options Indexes FollowSymLinks
AllowOverride None
Это запрещает переписывание Options в .htaccess.
На локалке я просто меняю 2-ю строчку на AllowOverride All.

*

Оффлайн Аня

  • *****
  • 660
  • [+]32 / [-]0
  • Пол: Женский
  • Копатыч нестабилен!
    • Просмотр профиля
    • Блог переехал
Цитировать
Я думаю, вы быстрее получите ответ, если напишите сюда: support@1gb.ru. Они могут глянуть, что там у вас с этим .htaccess и дать нужный совет.
Я уже их сильно пытала на этот счет.
Вот такой .htaccess был на старом сайте, где убийство index.php работало. Может, там есть магические строчки, которые заводили переадресацию:
Options -Indexes
AddDefaultCharset utf-8

AddType application/vnd.ms-word.document.macroEnabled.12 .docm
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
AddType application/vnd.ms-powerpoint.template.macroEnabled.12 potm
AddType application/vnd.openxmlformats-officedocument.presentationml.template potx
AddType application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam
AddType application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm
AddType application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
AddType application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm
AddType application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
AddType application/vnd.ms-excel.addin.macroEnabled.12 xlam
AddType application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb
AddType application/vnd.ms-excel.sheet.macroEnabled.12 xlsm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
AddType application/vnd.ms-excel.template.macroEnabled.12 xltm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif "access plus 1 years"
ExpiresByType image/jpeg "access plus 1 years"
ExpiresByType image/png "access plus 1 years"
ExpiresByType text/css "access plus 1 months"
ExpiresByType text/javascript "access plus 1 months"
ExpiresByType application/x-javascript "access plus 1 months"
</IfModule>




RewriteEngine on

RewriteCond %{HTTP_HOST} ^testnews
RewriteRule .* - [L]

RewriteCond %{HTTP_HOST} ^tereza.ru [OR]
RewriteCond %{HTTP_HOST} ^tereza.su [OR]
RewriteCond %{HTTP_HOST} ^www.tereza.su
RewriteRule (.*) http://www.tereza.ru/$1 [R=301,L]

#RewriteCond %{HTTP_HOST} !^www\.esobox3\.com$ [NC]
#RewriteRule ^(.*)$ http://www.esobox3.com/$1 [R=301,L]

RewriteCond $1 !^(index\.php|test\.php|assets|adm/img|adm/js|adm/admin|adm/styles|img|upload|js|styles|captcha|robots\.txt|sitemap\.xml) [NC]
#RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteRule ^(.*)$ index.php?$1 [L]
« Последнее редактирование: 12.04.2016, 12:27:49 от Аня »
Fatal error - это фатально!!!!


*

Оффлайн almika

Скорее всего, вы читали FAQ на сайте вашего хостинга, но на всякий случай:

Цитировать
На всех наших серверах под управлением Apache работает mod_rewrite.
Если вам или вашему скрипту кажется, что mod_rewrite или .htaccess не работают, надо сделать следующее -
1) В личном кабинете посмотреть "Управление сайтами и серверами", убедиться, что ваш сайт на Apache. Если нужно, поменяйте тип сервера на Apache.
2) Если сайт на Apache, то mod_rewrite работает 100%. Проверяйте скрипт.

Взято отсюда: http://www.1gb.ru/default.aspx?ti=6&hti=83

У вас точно на Apache? Там на страничке ещё есть информация, может что-то пригодится. Вот здесь http://www.1gb.ru/default.aspx?ti=6&hti=84 они предлагают даже создать .htaccess автоматом для доменов 3-го уровня.

Кое-что зависит и от версии Apache. Пригодилась бы информация о системе.

Удачи

*

Оффлайн Аня

  • *****
  • 660
  • [+]32 / [-]0
  • Пол: Женский
  • Копатыч нестабилен!
    • Просмотр профиля
    • Блог переехал
Точно Apache и точно mod_rewrite включен. Читала я эту инструкцию) И, более того, на старом сайте mod_rewrite работал нормально. В настройках Joomla все норм. Как только включаю переадресацию URL, внутренние страницы дают 404. Потому что без index.php не фурычат(
Теперь там другой человек будет заниматься сайтом, я свое дело сделала. Значит, упадет в поиске сайт. Я так понимаю, для компании это не критично. Мне просто самой очень любопытно, в чем причина такого нестандартного поведения. Для общего развития и повышения профессионализма.
Ведь близко разгадка! Старый .htaccess удалял index.php, а джумловский не удаляет. В чем-то между ними критическая разница!
Fatal error - это фатально!!!!

*

Оффлайн flyingspook

В том что не удаляет присутствует строка
RewriteRule ^(.*)$ index.php?$1 [L]

*

Оффлайн Аня

  • *****
  • 660
  • [+]32 / [-]0
  • Пол: Женский
  • Копатыч нестабилен!
    • Просмотр профиля
    • Блог переехал
Вот эта строчка RewriteRule ^(.*)$ index.php?$1 [L] из старого .htaccess, который работал,
а в джумловском написано RewriteRule .* index.php [F]   RewriteCond %{REQUEST_URI} !^/index\.php   RewriteRule .* index.php [L] - это я выписала все, что там связано с index.php
Fatal error - это фатально!!!!

*

Онлайн voland

  • ********
  • 9939
  • [+]520 / [-]101
  • Пол: Мужской
  • СКАЙП утерян! Пишите в телеграм @volandku
    • Просмотр профиля
    • webstudio.pro
Так, тут же ответ был для проверки.
Почему он на свалке?

*

Онлайн voland

  • ********
  • 9939
  • [+]520 / [-]101
  • Пол: Мужской
  • СКАЙП утерян! Пишите в телеграм @volandku
    • Просмотр профиля
    • webstudio.pro
Цитировать
Создайте на сервере пустую поддиректорию mod_rewrite и загрузите в нее файлы .htaccess и index.php следующего содержания:
.htaccess:

RewriteEngine On
RewriteRule ^.*$ index.php


index.php:

<?php
print 'Есть поддержка!';
?>

Наберите в браузере адрес вида http://domain.ru/mod_rewrite
На открывшейся странице в браузере должна появиться надпись «Есть поддержка». Если этого не произошло, необходимо выполнить правильную настройку mod_rewrite.

Может в настройках домена не стоит индексная страница index.php а с стоит index.html
Сообщить модератору     Записан

*

Оффлайн Аня

  • *****
  • 660
  • [+]32 / [-]0
  • Пол: Женский
  • Копатыч нестабилен!
    • Просмотр профиля
    • Блог переехал
Есть поддержка! Увы. http://tereza.ru/mod_rewrite/
Fatal error - это фатально!!!!

*

Онлайн voland

  • ********
  • 9939
  • [+]520 / [-]101
  • Пол: Мужской
  • СКАЙП утерян! Пишите в телеграм @volandku
    • Просмотр профиля
    • webstudio.pro
а что там кракозябры?
Может и htaccess в левой кодировке и это причина?

*

Оффлайн Аня

  • *****
  • 660
  • [+]32 / [-]0
  • Пол: Женский
  • Копатыч нестабилен!
    • Просмотр профиля
    • Блог переехал
А у меня не кракозябры в браузере. Но кодировку щас гляну.
На хостинге по умолчанию в редакторе кода стоит сp1251 и она не переключается. Вернее, переключается, но не сохраняется.
« Последнее редактирование: 13.04.2016, 14:22:25 от Аня »
Fatal error - это фатально!!!!