Как убрать из url index.php

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 21 год 4 месяца
Благодарил (а): 79 раз
Поблагодарили: 69 раз
Забанен: Бессрочно

Re: Как убрать из url index.php

Сообщение MAzZY »

Предлагаю отказаться вообще от этой глупой затеи, пока не поздно
Денис Анатольевич
phpBB 1.4.0
Сообщения: 38
Стаж: 16 лет 8 месяцев
Благодарил (а): 2 раза

Re: Как убрать из url index.php

Сообщение Денис Анатольевич »

Я поставил себе все 4 SEOмода от http://www.phpbb-seo.com и все стало в порядке. Теперь редиректится на главную станицу без /index.php.
armid
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 1 месяц
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Как убрать из url index.php

Сообщение armid »

А если убрать index.php, внутренние ссылки на главную как буду ссылаться?
С index.php или без?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Как убрать из url index.php

Сообщение Nekstati »

Комплексное решение.
Удаляем index.php отовсюду, откуда только можно.

Для ссылок на главную страницу:

includes/functions.php

Код: Выделить всё

// Найти
		'U_INDEX'				=> append_sid("{$phpbb_root_path}index.$phpEx"),

// Заменить на
		'U_INDEX'				=> append_sid($phpbb_root_path),
Для редиректов (после входа/выхода, регистрации, удаления кук и т. п.):

ucp.php

Код: Выделить всё

// Произвести массовую замену (15 раз)
	append_sid("{$phpbb_root_path}index.$phpEx")

// На
	append_sid($phpbb_root_path)

// Найти
		login_box(request_var('redirect', "index.$phpEx"));

// Заменить на
		login_box(request_var('redirect', ''));
includes/functions.php

Код: Выделить всё

// Найти (строка 2474)
	global $user, $phpbb_root_path;

// Заменить на
	global $user, $phpbb_root_path, $phpEx;

// Найти
	return $phpbb_root_path . str_replace('&', '&', $redirect);

// Заменить на
	return $phpbb_root_path . str_replace(array('&', 'index.' . $phpEx), array('&', ''), $redirect);
includes/ucp/ucp_register.php

Код: Выделить всё

// Найти
				$message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');

// Заменить на
				$message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid($phpbb_root_path) . '">', '</a>');
Для ссылок и редиректов из администраторского раздела:

adm/index.php

Код: Выделить всё

// Найти
		'U_INDEX'				=> append_sid("{$phpbb_root_path}index.$phpEx"),

// Заменить на
		'U_INDEX'				=> append_sid($phpbb_root_path),
includes/acp/acp_main.php

Код: Выделить всё

// Найти
				$redirect_url = append_sid("{$phpbb_root_path}index.$phpEx");

// Заменить на
				$redirect_url = append_sid($phpbb_root_path);
Для ссылки «Отметить все форумы как прочтённые»:

index.php

Код: Выделить всё

// Найти
	'U_MARK_FORUMS'		=> ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}index.$phpEx", 'hash=' . generate_link_hash('global') . '&mark=forums') : '',

// Заменить на
	'U_MARK_FORUMS'		=> ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid($phpbb_root_path, 'hash=' . generate_link_hash('global') . '&mark=forums') : '',
armid
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 1 месяц
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Как убрать из url index.php

Сообщение armid »

Nekstati
Спасибо Вам огромное. Вы - супер.
Кстати на этом форуме, на главной странице присутствует redirect с index.php на без index.php.
Теперь каждый на своем форуме сможет сделать.
Еще вопрос, на ваш взгляд, эти действия не приведут к потери внутренней перелинковке? Я так понимаю внутренние ссылки на главную страницу, будут вместо forum.ru/index.php иметь вид forum.ru?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Как убрать из url index.php

Сообщение Nekstati »

forum.ru/index.php → forum.ru/
forum.ru/index.php?sid=123456 → forum.ru/?sid=123456
И т. п.

Учтите, что если на конференции установлен портал и portal.php находится в одной папке с index.php, то все ссылки и редиректы будут вести на страницу портала.
armid
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 1 месяц
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Как убрать из url index.php

Сообщение armid »

Портал не установлен. Не имел с ним дело.
Nekstati писал(а):то все ссылки и редиректы будут вести на страницу портала.
т.е нельзя будет ходить по форумам, вместо открытия форумов и тем будет открываться главная страница портала?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Как убрать из url index.php

Сообщение Nekstati »

С чего бы это? Просто вместо главной форума ссылки будут на главную портала.
armid
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 1 месяц
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Как убрать из url index.php

Сообщение armid »

Я конечно дико извиняюсь...
Еще уточню.
Нельзя будет зайти на главную страницу форума получается? Т.е. список форумов не посмотреть?
Или вы имели ввиду, что внутренние ссылки просто будут ссылаться на главную страницу портала?
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 21 год 4 месяца
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза

Re: Как убрать из url index.php

Сообщение Поручик »

Если portal.php указан в качестве индексного в .htaccess
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Как убрать из url index.php

Сообщение Nekstati »

(Перечитывая свой предыдущий пост.) Это ж надо было так феерично затупить! На самом деле всё делается одной строкой: найти в includes/functions.php

Код: Выделить всё

function append_sid($url, $params = false, $is_amp = true, $session_id = false)
{
	global $_SID, $_EXTRA_URL, $phpbb_hook;
Добавить после

Код: Выделить всё

	$url = str_replace('index.php', '', $url);
И всё, index.php убит везде: и на форуме, и в админке, и в фотогалерее, и в прочих модах, имеющих страницу ляляля/index.php.

Для нелюбителей править файлы — вариант с хуком: создать файлик includes/hooks/hook_kill_index.php нижеследующего содержания и очистить кэш.

Код: Выделить всё

<?php

function kill_index(&$hook, $url, $params = false, $is_amp = true, $session_id = false)
{
	$url = str_replace('index.php', '', $url);
	return append_sid($url, $params, $is_amp, $session_id);
}

$phpbb_hook->register('append_sid', 'kill_index');

?>
Аватара пользователя
frolove
phpBB 1.0.0
Сообщения: 1
Стаж: 14 лет 11 месяцев

Re: Как убрать из url index.php

Сообщение frolove »

Здравствуйте. Заранее прошу прощения если пишу не туда.
Вопрос такой, после установки форума phpBB 3.0.9, да и в общем то любой версии, там есть демо топик так сказать, что-то вроде Вас приветствует phpBB, после его удаления допустим создаю новый топик, но в ссылке уже пишется /forum/viewtopic.php?f=10&t=2, т.е. уже второй топик, как удалить первый топик, чтобы в конце ссылки мой новый топик показался 1, а не 2?!
Заранее благодарю.
Аватара пользователя
Mouse
phpBB 2.0.0
Сообщения: 221
Стаж: 14 лет 7 месяцев
Благодарил (а): 101 раз
Поблагодарили: 6 раз

Re: Как убрать из url index.php

Сообщение Mouse »

Доброй ночи, уважаемые Гуру!

Решили избавиться от index.php по вышеописанному совету от Некстати
На форуме стоит Board3 Portal 2.0.х.
После изменений от Некстати, при нажатии и на Портал и на Форум стало переадресовывать на Портал.
Сделала изменения в htaccess, изменила

Код: Выделить всё

DirectoryIndex portal.php index.php index.html index.htm
на

Код: Выделить всё

DirectoryIndex index.php
Теперь Портал ведет на Портал, а Форум на Форум, но если забиваешь в поиске адрес сайта, то ведет на Форум, а не на Портал. Понимаю, что в качестве индекса установлен именно Форум, но почему же тогда если индекс - Форум, то ведет и на Форум и на Портал, а если индекс - Портал, то только на Портал?
Надеюсь, понятно объяснила.... :oops: Подскажите, пожалуйста, решение. Хочется, чтобы в качестве индекса был Портал, а при нажатии на Форум - открывался Форум.
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Как убрать из url index.php

Сообщение Pazh »

Mouse DirectoryIndex определяет порядок открытия файлов если ты вбил в адресную строку http://site.ru
т,е. в первом примере сначала будет искаться portal.php, если его нет то index.php, если и его нет то index.html и т.д.
Получается что http://site.ru приведет на http://site.ru/portal.php

Чтобы при этом по ссылке "Форум" переходило не на портал, а на форум, то нужно там прописать не http://site.ru, а http://site.ru/index.php - тогда по ссылке http://site.ru будет перекидывать на портал согласно DirectoryIndex, а по ссылке форум будет жестко перекидывать на index.php
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Mouse
phpBB 2.0.0
Сообщения: 221
Стаж: 14 лет 7 месяцев
Благодарил (а): 101 раз
Поблагодарили: 6 раз

Re: Как убрать из url index.php

Сообщение Mouse »

Pazh писал(а):то нужно там прописать не http://site.ru, а http://site.ru/index.php - тогда по ссылке http://site.ru будет перекидывать на портал согласно DirectoryIndex, а по ссылке форум будет жестко перекидывать на index.php
Pazh, а там это где? :oops: В htaccess? Я попробовала, и при нажатии на форум открывается список моих файлов в рут в текстовом формате :?
Что и как конкретно прописать в htaccess, чтобы открывалось так, как Вы сказали в цитате выше?
Заранее большое спасибо

Вернуться в «Поддержка phpBB 3.0.х»