Skocz do zawartości


Zdjęcie

forum IPB tworzenie przyjaznych adresów stron


  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 26 03 2011 - 09:48

Optymalizacja IPB, czyli jak poprawić odwiedzalność strony nie inwestując ani złotówki w pozycjonowanie strony!

Nowy poprawiony artykuł do IPB 3.3.3 i WYŻEJ znajdziesz na stronie: przyjazne adresy WWW na forum IPB oraz optymalizacja

 

Cześć 2
Przyjazne linki jak bardzo są ważne i dlaczego warto je zmienić zamiast domyślnych adresów www (sugerowanych przez IPB).


Nie od dziś wiadomo, że począwszy od wersji IPB 3.0.5 dokonano kilka poważnych zmian mających w domyśle poprawić indeksowanie przez Google, które było nie wystarczające w poprzednich wersjach i trzeba było korzystać z dodatkowych aplikacji nierzadko płatnych (Community SEO bądź Minerva SEO). Swego czasu powstał dodatek FURL, który niestety stał się całkowicie niekompatybilny z IPB 3.0.5 wzwyż co spowodowało znaczny spadek oglądalności witryny po aktualizacji strony. Poza tym stare linki FURL po aktualizacji prowadziły donikąd.. czy da się coś tym zrobić i przywrócić do życia świetny dodatek optymalizujący linki - dowiecie się w tym artykule! Wersja IPB 3.2 ma już przyjazne linki domyślnie włączone, niestety nie są one doskonałe - lepiej skorzystać z poradnika i je poprawić.

Wbudowane przyjazne linki w IPB
..rozczarowują, a to dlatego, że adres strony staję się przydługawy i większą wagę otrzymują "foldery": /topic i /forum niż zawartość właściwa strony. Poza tym jest niekompatybilny z wykorzystywanymi wcześniej dodatkami opisanymi we wstępie.

Przywracanie przyjaznych linków, podobnych do tych z Wordpressa czy vBulletin
Bez problemu możemy dostosować przyjazne linki w IPB. Niestety programiści IPS nie podają wytycznych jak to zrobić, dlatego warto skorzystać z tego poradnika, aby dodać "kopa" naszej witrynie w wynikach wyszukiwania! Od czego zacząć?

Krok 1

Upewnij się, że w pliku conf_global.php zlokalizowanym w folderze public_html naszego forum znajduje się wpis:
$INFO['use_friendly_urls'] = '1';
 

Krok 2

a) Przejdź do lokalizacji: public_html czy też forum, a następnie: admin/applications/forums/extensions/ i skopiuj plik: furlTemplates.php na dysk lokalny.
:D otwórz plik furlTemplates.php i zamień zawartość:

$_SEOTEMPLATES = array(

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

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

	'showtopic' 	=> array( 'app' 			=> 'forums',
					 		'allowRedirect' => 1,
					 		'out' 		=> array( '#showtopic=(.+?)(&|$)#i', 'topic/$1-#{__title__}/$2' ),
					 		'in' 	=> array( 'regex' => '#^/topic/(\d+?)-#i',
										 			'matches' => array( array( 'showtopic', '$1' ) ) ) ),
							
	'act=idx' 	=> array( 'app' 			=> 'forums',
					 		'allowRedirect' => 0,
					 		'out' 		=> array( '#act=idx(&|$)#i', 'index$1' ),
					 		'in' 	=> array( 'regex' => '#^/index(/|$|\?)#i',
										 			'matches' => array( array( 'act', 'idx' ) ) ) ),
);

na:

[/left]
[left]//optymalizacja SEO by Makensis dla Tweaks.pl v.1.0[/left]
[left]$_SEOTEMPLATES = array(

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


'showforum' 	=> array( 'app' 	=> 'forums',
		'allowRedirect' => 1,
		'out' 		=> array( '#showforum=(.+?)(&|$)#i', '#{__title__}-f$1.html$2' ),
		'in' 	=> array( 'regex' => "#-f(\d+?)\.html#i",
			'matches' => array( array( 'showforum', '$1' ) ) ) ),

'showtopic' 	=> array( 'app' 	=> 'forums',
		'allowRedirect' => 1,
		'out' 		=> array( '#showtopic=(.+?)(&|$)#i', '#{__title__}-t$1.html$2' ),
		'in' 	=> array( 'regex' => "#-t(\d+?)\.html#i",
	'matches' => array( array( 'showtopic', '$1' ) ) ) ),

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

c) Skopiuj plik na FTP

W ten sposób z adresu: index.php?/forum/2-moje-aygo/ uzyskamy: /index.php/moje-aygo-f2.html

d) Przejdź do lokalizacji: public_html czy też forum, a następnie: admin/applications/members/extensions/ i skopiuj plik: furlTemplates.php na dysk lokalny.
e) otwórz plik furlTemplates.php i zamień zawartość:

$_SEOTEMPLATES = array(
	
	'showuser'	=> array( 'app' 			=> 'members',
				 		'allowRedirect' => 1,
				 		'out' 		=> array( '#showuser=(.+?)((?:&|&)f=(.+?))?(&|$)#i', 'user/$1-#{__title__}/$2$4' ),
				 		'in' 	=> array( 'regex' => "#/user/(\d+?)-#i",
													'matches' => array( array( 'showuser', '$1' ) ) ) ),

	'members_status_friends'=> array( 'app' 			=> 'members',
							 		'allowRedirect' => 0,
							 		'out' 		=> array( '#app=members(?:&|&)module=profile(?:&|&)section=status(?:&|&)type=friends(&|$)#i', 'statuses/friends/$2' ),
							 		'in' 	=> array( 'regex' => "#/statuses/friends#i",
																'matches' => array( array( 'app'	, 'members' ),
																					array( 'section', 'status' ),
																					array( 'module' , 'profile' ),
																					array( 'type' , 'friends' ) ) ) ),

	'members_status_all'	=> array( 'app' 			=> 'members',
							 		'allowRedirect' => 0,
							 		'out' 		=> array( '#app=members(?:&|&)module=profile(?:&|&)section=status((?:&|&)type=all)?(&|$)#i', 'statuses/all/$2' ),
							 		'in' 	=> array( 'regex' => "#/statuses/all#i",
																'matches' => array( array( 'app'	, 'members' ),
																					array( 'section', 'status' ),
																					array( 'module' , 'profile' ) ) ) ),

						
	'members_list' => array(
						'app'			=> 'members',
						'allowRedirect' => 0,
						'out'			=> array( '#app=members((&|&)module=list)?#i', 'members/' ),
						'in'			=> array(
													'regex'		=> "#/members(/|$|\?)#i",
													'matches'	=> array( array( 'app', 'members' ),
																 		array( 'module', 'list' ) )
												)
									),
);

na:

[/left]
[left]//optymalizacja SEO by Makensis dla Tweaks.pl v.1.0[/left]
[left]$_SEOTEMPLATES = array(

	'showuser'	=> array( 'app' 			=> 'members',
				 		'allowRedirect' => 1,
				 		'out' 		=> array( '#showuser=(.+?)((?:&|&)f=(.+?))?(&|$)#i', '#{__title__}-m$1.html/$2$4' ),
				 		'in' 	=> array( 'regex' => "#-m(\d+?)\.html#i",
													'matches' => array( array( 'showuser', '$1' ) ) ) ),

	'members_status_friends'=> array( 'app' 			=> 'members',
							 		'allowRedirect' => 0,
							 		'out' 		=> array( '#app=members(?:&|&)module=profile(?:&|&)section=status(?:&|&)type=friends(&|$)#i', 'statuses/friends/$2' ),
							 		'in' 	=> array( 'regex' => "#/statuses/friends#i",
																'matches' => array( array( 'app'	, 'members' ),
																					array( 'section', 'status' ),
																					array( 'module' , 'profile' ),
																					array( 'type' , 'friends' ) ) ) ),

	'members_status_all'	=> array( 'app' 			=> 'members',
							 		'allowRedirect' => 0,
							 		'out' 		=> array( '#app=members(?:&|&)module=profile(?:&|&)section=status((?:&|&)type=all)?(&|$)#i', 'statuses/all/$2' ),
							 		'in' 	=> array( 'regex' => "#/statuses/all#i",
																'matches' => array( array( 'app'	, 'members' ),
																					array( 'section', 'status' ),
																					array( 'module' , 'profile' ) ) ) ),

						
	'members_list' => array(
						'app'			=> 'members',
						'allowRedirect' => 0,
						'out'			=> array( '#app=members((&|&)module=list)?#i', 'members/' ),
						'in'			=> array(
													'regex'		=> "#/members(/|$|\?)#i",
													'matches'	=> array( array( 'app', 'members' ),
																 		array( 'module', 'list' ) )
												)
									),
);

Aby zmiany zostały zaakceptowane potrzeba jeszcze zresetować zawartość CACHE przyjaznych linków. W tym celu zaloguj się do panelu administracyjnego (/admin) i w pozycji: Manage Applications & Modules kliknij na przycisk Rebuild FURL Cache. W IPB 3.2 z menu głównego wybierz Cache Management i tam kliknij na Rebuild FURL Cache.

 

Krok 3

Teraz usuniemy niepotrzebny "index.php" przypisany do każdego tematu na forum.

W tym celu zaloguj się do panelu administracyjnego i w głównym menu: Tools & Settings wybierz: System Settings, a następnie zakładkę: System i otwórz pozycję: Search Engines Optimization i wybierz: 'yes' dla opcji: Use .htaccess mod_rewrite.

Krok 4

Jeśli nie masz jeszcze w lokalizacji FTP pliku .htaccess musisz go utworzyć ręcznie, w tym celu:

a) na dysku lokalnym utwórz plik .htaccess. Uruchom Notatnik i wklej do niego zawartość:

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /forum/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /forum/index.php [L]
</IfModule>

Jeśli twoje forum znajduje się w katalogu głównym public_html usuń wpisy: forum/

:P Zapisz plik jako .htaccess i zaznacz w opcjach notatnika: Zapisz jako: wszystkie pliki!

c) Przejdź do lokalizacji: public_html czy też forum, a następnie skopiuj z dysku lokalnego plik .htaccess

 




Od tej pory z adresu forum zniknie wpis /index.php/ .
 

Krok 5


(Krok ten możesz pominąć, jeśli nie zależy ci na wyszczególnieniu dużych i małych liter w adresach nazw tematów.)


Bardzo przydatną opcją jest wyświetlanie nazw tematów z użyciem dużych i małych liter. W ten sposób linki zyskują na czytelności, poza tym Google rozróżnia duże i małe znaki i traktuje inaczej adresy o różnej wielkości liter! Aby dostosować adresy www wykonaj następujące czynności:

a) Przejdź do lokalizacji: public_html czy też forum, a następnie: /admin/source/base/ i skopiuj plik: core.php na dysk lokalny.
B) W zawartości pliku poszukaj funkcji: static public function makeSeoTitle( $text ) i usuń następujący wpis:

if ( self::isUTF8( $text ) )
		{
	if ( function_exists('mb_strtolower') )
			{
				$text = mb_strtolower($text, 'UTF-8');
			}

			$text = self::utf8Encode( $text, 250 );
		}

	/* Finish off */
		$text = strtolower($text);

		if ( strtolower( IPS_DOC_CHAR_SET ) == 'utf-8' )
		{
			$text = preg_replace( '#&.+?;#' 	, '', $text );
			$text = preg_replace( '#[^%a-z0-9 _-]#', '', $text );
		}
		else
		{
			/* Remove &#xx; and &#xxx; but keep &#xxxx; */
			$text = preg_replace( '/&#(\d){2,3};/', '', $text );
			$text = preg_replace( '#[^%&\#;a-z0-9 _-]#', '', $text );
			$text = str_replace( array( '&quot;', '&amp;'), '', $text );
		}

Pod skasowaną treścią dodaj:

$text = preg_replace( '/&#(\d){2,3};/', '', $text );
			$text = preg_replace( '#[^%&\#;a-zA-Z0-9 _-]#', '', $text );
			$text = str_replace( array( '&quot;', '&amp;'), '', $text );

 


c) skopiuj plik na FTP
d) zresetuj zawartość cache przez wpisanie komend SQL w panelu administracyjnym lub phpMyAdmin:

UPDATE ibf_topics SET title_seo = '' WHERE 1
UPDATE ibf_forums SET name_seo = '' WHERE 1

Od tej pory duże i małe litery będą rozróżniane w linkach tematów i for.

Co jeszcze możemy zrobić, aby zyskać większą odwiedzalność strony?
Przede wszystkim można spróbować zastosować polskie znaki w adresach linków. Obecnie jest to powszechnie stosowane np. Wikipedia posiada takie adresowanie stron. Jak to zrobić to już temat na osobny artykuł ;)

Podsumowanie:
Przyjazne adresy stron dają Google wiele informacji o zawartości merytorycznej witryny i "pozycjonują" najważniejszą treść w temacie. Należy zauważyć, że niepoprawnie ułożony tytuł tematu może sporo nam zaszkodzić, dlatego należy powiadomić moderatorów forum i użytkowników o uważnym nazywaniu tematów i problemów w nich zawartych.
Wykonując tą instrukcję w ciągu następnych miesięcy możemy liczyć na kilkunastu procentowy wzrost odwiedzin tylko z tytułu poprawy adresowania stron!

Powyższy artykuł nie przekazuje wiedzy o przekierowaniach starych i nowych tematów sprzed aktualizacji IPB do wersji 3.0.5! Powyższy artykuł nie jest w pełni kompatybilny z IPB 3.3.3(patrz aktualizacja poniżej).



  • 0

#2 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 15 06 2012 - 14:20

Uwaga! W nowej wersji IPB 3.3.3 i modyfikacji SEO IPB v1.0(powyższej) pojawia się bug w widoku forum w linku data ostatniej wypowiedzi oraz w widoku użytkownika ostatnie tematy i odpowiedzi. Wszyscy, którzy skorzystali z porady i dokonali aktualizacji forum proszę o wykonanie kosmetycznych zmian w pliku: topics.php w lokalizacji: /admin/applications/forums/modules_public/forums/
	$this->registry->output->silentRedirect($this->settings['base_url']."showtopic=".$topicData['tid']. $stUrlParam ."#entry".$post['pid'], $topicData['title_seo'], 302, 'showtopic' );
na:
//optymalizacja SEO by Makensis dla Tweaks.pl v.2.0
	$this->registry->output->silentRedirect($this->settings['base_url']."showtopic=".$topicData['tid']. $stUrlParam ."&#entry".$post['pid'], $topicData['title_seo'], 302, 'showtopic' );
I w dalszej części kodu:
	$this->registry->output->silentRedirect( $this->settings['base_url']."showtopic=".$topicData['tid']."{$stUrlParam}{$search_hl}"."#entry".$pid, $topicData['title_seo'], 302, 'showtopic' );
Na:
//optymalizacja SEO by Makensis dla Tweaks.pl v.2.0
	$this->registry->output->silentRedirect( $this->settings['base_url']."showtopic=".$topicData['tid']."{$stUrlParam}{$search_hl}"."&#entry".$pid, $topicData['title_seo'], 301, 'showtopic' );

Nowy artykuł i nieco odświeżone podejście odnośnie linków przyjaznych znajdziesz na: Przyjazne linki na forum IPB v.2.0

  • 0

#3 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 03 11 2012 - 13:13

Wersja IPB SEO 2.1 by Makensis już wydana, poprawiono w niej problem z wyświetlaniem funkcji "idź do ostatniego nieprzeczytanego posta".

Zmiany w kodzie:

Przejdź do lokalizacji: public_html czy też forum, a następnie: admin/applications/forums/extensions/ i skopiuj plik: furlTemplates.php na dysk lokalny. Otwórz plik furlTemplates.php i zamień zawartość:

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

na


//poprawka 2.1 IPB SEO by Makensis
'showtopicunread'=> array( 'app'	 => 'forums',
		 'allowRedirect' => 1,
		 'out'			 => array( '#showtopic=(.+?)(?:&|&amp;)view=getnewpost(&|$)#i', '#{__title__}-t$1.html/unread/$2' ),
		 'in'			 => array( 'regex' => "#-t(\d+?).html/unread(/|$)#i",
					 'matches' => array( array( 'showtopic', '$1' ),
				 array( 'view', 'getnewpost' ) ) ) ),

oraz w pliku: topics.php w lokalizacji: /admin/applications/forums/modules_public/forums/
w funkcji: returnNewPost linijka 519:

$pid = "#entry".$post['pid'];

na:

$pid = "&#entry".$post['pid'];

  • 0

#4 Gość_Male Escort_*

Gość_Male Escort_*

Napisano 09 10 2013 - 11:57

Czy te tipy można zastosować do wersji 3.4.5 ?? Czy są one juz nie aktualne ?


  • 0

#5 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 09 10 2013 - 18:19

Odpowiedź znajdziesz w pierwszym akapicie, a dokładnie "nowy poprawiony artykuł do IPB 3.3.3 znajdziesz na stronie: przyjazne adresy WWW na forum IPB oraz optymalizacja".


  • 0

#6 Tina45

Tina45

    Nowy

  • 1 postów

Napisano 17 05 2017 - 09:43

Odkopałam ten temat, bo mam problem z ustawieniem przyjaznych linków.

Czy porady zawarte w tym temacie moża zastosować do wersji 4.1.19.4 ?



  • 0

Zobacz więcej tematów z tagiem: IPB IP.Board



Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych