Форум русской поддержки Joomla!® CMS
10.12.2016, 03:16:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 1029 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 643


Копатыч нестабилен!


« : 10.04.2016, 02:39:18 »

Почему-то не могу убрать 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 надо убрать из адресов
Вопрос - как?
Записан
evgen777
Завсегдатай
*****

Репутация: +62/-2
Offline Offline

Пол: Мужской
Сообщений: 691

skype:evgeniy8955 mail:office@sevweb.tk


« Ответ #1 : 10.04.2016, 09:36:33 »

Так у вас .htaccess в корне сайта есть хоть?
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1467


« Ответ #2 : 10.04.2016, 10:09:34 »

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

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

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

Записан
SDKiller
Dev Team
******

Репутация: +325/-5
Offline Offline

Пол: Мужской
Сообщений: 2749


...ergo sum


« Ответ #3 : 10.04.2016, 10:46:44 »

А mod_rewrite включен на сервере?
Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 643


Копатыч нестабилен!


« Ответ #4 : 10.04.2016, 22:28:37 »

.htaccess конечно есть. Все вообще как обычно. А вот насчет mod rewrite не знаю. Мне заказчики дали избирательный доступ, к панели управления хостинга доступа нет, чтобы посмотреть, что там включено. Было бы классно, если бы он не был включен, это бы все объяснило, и что индекс нельзя убрать и что 301 редирект не работает.
Но если я пишу вместо tereza.ru tereza.ru/index.php открывается все-таки tereza.ru без индекса. Это значит, что mod rewrite включен? Или не значит?
И когда был старый сайт на основном домене, там отсутствовал index.php в адресах, то есть какая-то директива работала по его ликвидации. А сейчас старый сайт в подпапке и эта директива не работает, и все его внутренние страницы открываются только с индексом
« Последнее редактирование: 10.04.2016, 22:32:01 от Аня » Записан
voland
Профи
********

Репутация: +488/-86
Offline Offline

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #5 : 10.04.2016, 22:31:18 »

Не значит.
В нем дело
Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 643


Копатыч нестабилен!


« Ответ #6 : 10.04.2016, 22:33:45 »

Завтра пойду к ним в офис и выясню. Я бы очень порадовалась, если дело просто в отключенном mod rewrite.
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1467


« Ответ #7 : 10.04.2016, 23:22:44 »

Там ещё вначале должна быть такая строчка RewriteEngine on  Grin
Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 643


Копатыч нестабилен!


« Ответ #8 : 11.04.2016, 01:52:41 »

Да все есть, все нормально. Совершенно стандартная ситуация, стандартная свежая Joomla со всем, что там полагается.
Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 643


Копатыч нестабилен!


« Ответ #9 : 11.04.2016, 14:54:39 »

На хостинге говорят, что mod_rewrite включен
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #10 : 11.04.2016, 15:02:09 »

Что за хостинг? Если там файл не htaccess.txt а именно .htaccess, и если в этом файле RewriteEngine включен, то RewriteCond и RewriteRule (как показал выше Филипп Сорокин) внутри должны обрабатываться и адрес должен принимать нужный вид. Если этого не происходит, значит стоит какой то запрет на управление сервером через .htaccess или его отдельных команд. Это уже не ваша задача - сообщите об этом клиенту и пусть сами разбираются с хостером.

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

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

Собственно, где у вас находится этот .htaccess и какова у вас структура сайта? Сколько всего файлов .htaccess?
« Последнее редактирование: 11.04.2016, 15:06:45 от SeBun » Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 643


Копатыч нестабилен!


« Ответ #11 : 11.04.2016, 15:22:07 »

.htaccess один, обычный джумловский, переименованный. Хостинг 1gb.ru
В настоящее время основной сайт, который на Joomla, в папке http, а старый  в подпапке
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #12 : 11.04.2016, 16:14:35 »

.htaccess один, обычный джумловский, переименованный
Где он находится? В папке основного сайта или подпапке?

Я думаю, вы быстрее получите ответ, если напишите сюда: support@1gb.ru. Они могут глянуть, что там у вас с этим .htaccess и дать нужный совет.
Записан
almika
Осваиваюсь на форуме
***

Репутация: +11/-0
Offline Offline

Пол: Женский
Сообщений: 188



« Ответ #13 : 12.04.2016, 02:38:38 »

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

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 643


Копатыч нестабилен!


« Ответ #14 : 12.04.2016, 11:15:52 »

Цитировать
Я думаю, вы быстрее получите ответ, если напишите сюда: 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, 11:27:49 от Аня » Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3537


« Ответ #15 : 12.04.2016, 13:21:34 »

В общих настройках в админке все правильно включено?
Записан
almika
Осваиваюсь на форуме
***

Репутация: +11/-0
Offline Offline

Пол: Женский
Сообщений: 188



« Ответ #16 : 12.04.2016, 16:43:13 »

Скорее всего, вы читали 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. Пригодилась бы информация о системе.

Удачи
Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 643


Копатыч нестабилен!


« Ответ #17 : 12.04.2016, 19:17:40 »

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

Репутация: +226/-9
Offline Offline

Сообщений: 3537


« Ответ #18 : 12.04.2016, 21:31:59 »

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

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 643


Копатыч нестабилен!


« Ответ #19 : 13.04.2016, 11:06:41 »

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

Репутация: +488/-86
Offline Offline

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #20 : 13.04.2016, 11:46:21 »

Так, тут же ответ был для проверки.
Почему он на свалке?
Записан
voland
Профи
********

Репутация: +488/-86
Offline Offline

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #21 : 13.04.2016, 11:46:53 »

Цитировать
Создайте на сервере пустую поддиректорию 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
Сообщить модератору     Записан
Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 643


Копатыч нестабилен!


« Ответ #22 : 13.04.2016, 12:46:08 »

Есть поддержка! Увы. http://tereza.ru/mod_rewrite/
Записан
voland
Профи
********

Репутация: +488/-86
Offline Offline

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #23 : 13.04.2016, 12:48:31 »

а что там кракозябры?
Может и htaccess в левой кодировке и это причина?
Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 643


Копатыч нестабилен!


« Ответ #24 : 13.04.2016, 12:55:04 »

А у меня не кракозябры в браузере. Но кодировку щас гляну.
На хостинге по умолчанию в редакторе кода стоит сp1251 и она не переключается. Вернее, переключается, но не сохраняется.
« Последнее редактирование: 13.04.2016, 13:22:25 от Аня » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet