Перейти к контенту
  • 0

Изменение ссылки на конкретное сообщение темы


ursus102

Вопрос

День добрый.

Вопрос уже задавал на ipbskins. Получил ответ, что он [вопрос] обсуждался здесь. Поиском пользовался, но, к сожалению, так и не нашел ответа. Просьба, помочь в решении, либо указать ссылку на тему, где обсуждалась данная проблема.

 

Собираю на локальном сервере форум. Поставил ipb 3.3.3, ip content 2.3.2, установил его главной страницей, .htaccess mod_rewrite включен, тип url - путь.

Если пользователь не авторизован, то при нажатии на сылку, указанную на скрине, пользователя переадресовывает по адресу: www.test.ru/forums/topic/2-proverka/ Это меня вполне устраивает. Т.е. гостя перебрасывает в начало темы.

После того, как пользователь авторизуется, то при нажатии на ссылку, указанную на скрине, пользователя переадресовывает по адресу: www.test.ru/forums/topic/2#entry4-proverka/ , где жирным выделена часть, которая отвечает за переадресацию на последнее сообщение темы. Этот якорь ошибочный и мне нужно привести данную ссылку к виду: www.test.ru/forums/topic/2-proverka/#entry4

Насколько я понял, это изменяется в furlTemplates.php

Код моего furlTemplates.php:

<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.2.3
* Sets up SEO templates
* Last Updated: $Date: 2011-08-02 15:53:39 -0400 (Tue, 02 Aug 2011) $
* </pre>
*
* @author	  $Author: bfarber $
* @copyright   © 2001 - 2009 Invision Power Services, Inc.
* @license	 http://www.invisionp...rd/license.html
* @package	 IP.Board
* @subpackage  Forums
* @link	    http://www.invisionpower.com
* @since	   20th February 2002
* @version	 $Rev: 9351 $
*
*/
if ( ! defined( 'IN_IPB' ) )
{
   print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
   exit();
}
/**
* SEO templates
*
* 'allowRedirect' is a flag to tell IP.Board whether to check the incoming link and if not formatted correctly, redirect the correct one
*
* OUT FORMAT REGEX:
* First array element is a regex to run to see if we've a match for the URL
* The second array element is the template to use the results of the parenthesis capture
*
* Special variable #{__title__} is replaced with the $title data passed to output->formatUrl( $url, $title)
*
* IMPORTANT: Remember that when these regex are used, the output has not been fully parsed so you will get:
* showuser={$data['member_id']} NOT showuser=1 so do not try and match numerics only!
*
* IN FORMAT REGEX
*
* This allows the registry to piece back together a URL based on the template regex
* So, for example: "/user/(\d+?)/", 'matches' => array(  array( 'showuser' => '$1' ) )tells IP.Board to populate 'showuser' with the result
* of the parenthesis capture #1
*/
$_SEOTEMPLATES = array(

   'showannouncement'	 => array( 'app'		   => 'forums',
								 'allowRedirect' => 1,
								 'out'		   => array( '#showannouncement=(.+?)((?:&|&)f=(.+?))?(&|$)#i', 'forums/forum-$3/announcement-$1-#{__title__}/$4' ),
								 'in'		    => array( 'regex'   => '#/forums/forum-(\d+?)?/announcement-(\d+?)-#i',
														   'matches' => array( array( 'showannouncement', '$2' ), array( 'f', '$1' ) ) ) ),

   'showforum'	 => array( 'app'		   => 'forums',
						  'allowRedirect' => 1,
						  'out'		   => array( '#showforum=(.+?)(&|$)#i', 'forums/forum/$1-#{__title__}/$2' ),
						  'in'		    => array( 'regex'   => '#^/forums/forum/(\d+?)-#i',
												    'matches' => array( array( 'showforum', '$1' ) ) ) ),
   'showtopicunread'=> array( 'app'			  => 'forums',
						   'allowRedirect'    => 1,
						   'out'			  => array( '#showtopic=(.+?)(?:&|&)view=getnewpost(&|$)#i', 'forums/topic/$1-#{__title__}/unread/$2' ),
						   'in'			   => array( 'regex'   => '#^/forums/topic/(\d+?)-([^/]+?)/unread(/|$)#i',
													    'matches' => array( array( 'showtopic', '$1' ),
																		    array( 'view', 'getnewpost' ) ) ) ),

   'showtopicnextunread'=> array( 'app'			  => 'forums',
							   'allowRedirect'    => 1,
							   'out'			  => array( '#showtopic=(.+?)(?:&|&)view=getnextunread(&|$)#i', 'forums/topic/$1-#{__title__}/nextunread/$2' ),
							   'in'			   => array( 'regex'   => '#^/forums/topic/(\d+?)-([^/]+?)/nextunread(/|$)#i',
														    'matches' => array( array( 'showtopic', '$1' ),
																			    array( 'view', 'getnextunread' ) ) ) ),
   'showtopic'	 => array( 'app'		   => 'forums',
						  'allowRedirect' => 1,
						  'out'		   => array( '#showtopic=(.+?)(&|$)#i', 'forums/topic/$1-#{__title__}/$2' ),
						  'in'		    => array( 'regex'   => '#^/forums/topic/(\d+?)-#i',
												    'matches' => array( array( 'showtopic', '$1' ) ) ) ),
   'acteqst'	   => array( 'app'		   => 'forums',
						  'allowRedirect' => 1,
						  'out'		   => array( '#act=ST(.*?)&t=(.+?)(&|$)#i', 'forums/topic/$2-#{__title__}/$3' ),
						  'in'		    => array( 'regex'   => '#^notavalidrequest$#i',
												    'matches' => array( array( 'showtopic', '0' ) ) ) ),

   'act=idx'	   => array( 'app'		   => 'forums',
						  'allowRedirect' => 0,
						  'out'		   => array( '#act=idx(&|$)#i', 'forums/$1' ),
						  'in'		    => array( 'regex'   => '#^/forums(/|$|\?)#i',
												    'matches' => array( array( 'act', 'idx' ) ) ) ),
);

 

Специалист siv1987 сообщил, что этот баг не связан с ЧПУ. Но я все же решил приложить код, чтобы не возникало вопросов.

post-129405-0-03187800-1347858182_thumb.jpg

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.