Skocz do zawartości

Problem z 301/ramki w php


Korektor

Rekomendowane odpowiedzi

Witam Wszystkich bardzo serdecznie

W związku z tym, że czytam to forum już od jakiegoś czasu, postanowiłem skorzystać z wyrozumiałości Użytkowników i podzielić się swoim problemem.

Wraz z moją ukochaną staramy się rozwijać nasz biznes w sieci. Jego wizytówką jest strona www.korekta.eu, z którą właśnie mam kłopot. Może przejdę od razu do rzeczy, bo mam świadomość tego, że ludzie nie lubią czytać długich postów.

Pytanie nr 1: Moja strona zrobiona jest w html, ale zamiast ramek używa php. Przyznam, że miałem z tym spory problem, bo jestem żółtodziobem w temacie php, ale jakoś się udało. Oto kod:

<?php
if(empty($_GET['item'])) $_GET['item']="korekta_tekstu";

  if ( $_GET ["item"] == od_autora)
 {include "od_autora.php";}
  if ( $_GET ["item"] == korekta_tekstu)
 {include "korekta_tekstu.php";}
  if ( $_GET ["item"] == oferta)
 {include "oferta.php";}
  if ( $_GET ["item"] == portfolio)
 {include "portfolio.php";}
  if ( $_GET ["item"] == kontakt)
 {include "kontakt.php";}
  if ( $_GET ["item"] == korekta_tekstu2)
 {include "korekta_tekstu2.php";}
  if ( $_GET ["item"] == cennik)
 {include "cennik.php";}
  if ( $_GET ["item"] == promocje)
 {include "promocje.php";}
  if ( $_GET ["item"] == dla_kogo_oferta)
 {include "dla_kogo_oferta.php";}
  if ( $_GET ["item"] == co_poprawiam)
 {include "co_poprawiam.php";}
  if ( $_GET ["item"] == wspolpraca)
 {include "wspolpraca.php";}
?>

Linki wyświetlają się w postaci - index.php?item=coś. Zostały już zaindeksowane w google. W związku z tym, że wprowadziłem "przyjazne" linki, mam poważny problem. Chciałbym wyeliminować możliwość duplicate content. Forum podpowiedziało mi o przekierowaniu 301 i tym tropem podążam. Tylko jak to osiągnąć?

Użytkownik wchodzi na stronę index.php?item=coś i ma zostać przekierowany na coś.html. Gdy wstawiam kod przekierowania w php:

<?php
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: https://www.korekta.eu/cos.html"); 
exit;
?>

to wyskakuje mi błąd:

Warning: Cannot modify header information - headers already sent by (output started at /index.php:8) in /cennik.php on line 2

Jak temu zaradzić?

Problem pewnie tkwi w kodzie wyświetlającym strony, a ponieważ jestem zielony w php, nie jestem go w stanie zmodyfikować.

Pytanie 2: Jak w takim wypadku dodać tagi title i meta keywords dla każdej podstrony?

Na końcu dodam, że nie jestem specem z php, ale z chęcią nadrobię te straty. Strona to moje dzieło i będzie przeze mnie stale dopieszczana. Wszelkie uwagi i porady przyjmę z chęcią. Z góry dziękuję za odpowiedź.

Odnośnik do komentarza
Udostępnij na innych stronach

Witam. Błąd ten wyskakuje dlatego, że przed wysłaniem nagłówka nie można wysłać do przeglądarki nic innego. W uproszczeniu: kod php odpowiedzialny za przekierowanie 301 musi być wysłany pierwszy. Jeżeli wyślesz cokolwiek przed nim (jakiś html lub chociażby spację) to dostaniesz taki błąd jaki pokazałeś wyżej.

Jeżeli nie potrafisz sobie z tym poradzić to pokaż większy kawałek kodu Twojej strony, podpowiemy gdzie wstawić przekierowanie. Możesz też zrobić 301 w htaccess.

Sprzedam artykuły, 1 grosz za 5000 znaków!

https://www.forum.optymalizacja.com/index.p...howtopic=126817

Odnośnik do komentarza
Udostępnij na innych stronach

przed wysłaniem nagłówka header("HTTP/1.1 301 Moved Permanently"); itd albo:

wyswietlasz juz cos echo 'xxx'; albo jakis kod html

albo ustawiasz session ;]

a tag title i keywords ustaw dla oznaczenia zawartosci podstron: karty towarów w sklepie www albo konkretny art na stroni - oczywiscie w title wstaw najwazniejsze ( na danej podstronie ) slowa klucozwe 3-4 pierwszy wyrazy maja najwieksza 'moc'

Odnośnik do komentarza
Udostępnij na innych stronach

Panowie, dziękuję za szybką odpowiedź.

Z tego, co czytałem w .htaccess, nie mogę użyć "przyjaznych" linków wraz z przekierowaniem 301.

Jeśli chodzi o kod strony, to proszę bardzo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>KOREKTA.EU - Profesjonalna korekta tekstów</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
<meta name="author" content="korekta.eu" />
<meta name="Language" content="pl" />
<meta name="revisit-after" content="3 day" />
<meta name="description" content="Profesjonalna korekta tekstów!" />
<meta name="keywords" content="korekta, adiustacja, korekta tekstów, poprawa tekstu, korekta tekstu, edytor, usługi korektorskie, usługi edytorskie, korektor" />
<meta name="robots" content="INDEX,FOLLOW" />
<meta name="classification" content="korekta tekstu" />
<meta name="verify-v1" content="/cMlT+1KvRYd9HqtKpm4yuFegoC09MvUJW7wT6rm09s=" />
<link rel="stylesheet" href="korekta.css" type="text/css" />
<link rel="shortcut icon" href="https://www.korekta.eu/pioro.ico" />

<script src="https://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-3036208-1";
urchinTracker();
</script>

</head>
<body>
<div id="centrum">
<table id="Table_01" width="1001" border="0" cellpadding="0" cellspacing="0">
<tr>
	<td colspan="4">
		<img id="index_01" src="images/index_01.jpg" width="556" height="78" alt="Korekta tekstu - logo, część lewa " /></td>
	<td colspan="2">
		<img id="index_02" src="images/index_02.jpg" width="444" height="78" alt="Korekta tekstu - logo, część prawa" /></td>
	<td>
		<img src="images/spacer.gif" width="1" height="78" alt="" /></td>
</tr>
<tr>
	<td colspan="2" rowspan="2">
		<img id="index_03" src="images/index_03.jpg" width="366" height="175" alt="Korekta tekstu - lewa kartka1" /></td>
	<td colspan="2" rowspan="2">
		<img id="index_04" src="images/index_04.jpg" width="190" height="175" alt="Korekta tekstu - lewa kartka2" /></td>
	<td colspan="2">
		<img id="index_05" src="images/index_05.jpg" width="444" height="25" alt="Prawa kartka - góra" /></td>
	<td>
		<img src="images/spacer.gif" width="1" height="25" alt="" /></td>
</tr>
<tr>
	<td style="background-image:url('images/index_06.jpg');background-repeat:no-repeat;" rowspan="9" width="329" height="513">			
<div id="tresc">
<?php
if(empty($_GET['item'])) $_GET['item']="korekta_tekstu";

  if ( $_GET ["item"] == od_autora)
 {include "od_autora.php";}
  if ( $_GET ["item"] == korekta_tekstu)
 {include "korekta_tekstu.php";}
  if ( $_GET ["item"] == oferta)
 {include "oferta.php";}
  if ( $_GET ["item"] == portfolio)
 {include "portfolio.php";}
  if ( $_GET ["item"] == kontakt)
 {include "kontakt.php";}
  if ( $_GET ["item"] == korekta_tekstu2)
 {include "korekta_tekstu2.php";}
  if ( $_GET ["item"] == cennik)
 {include "cennik.php";}
  if ( $_GET ["item"] == promocje)
 {include "promocje.php";}
  if ( $_GET ["item"] == dla_kogo_oferta)
 {include "dla_kogo_oferta.php";}
  if ( $_GET ["item"] == co_poprawiam)
 {include "co_poprawiam.php";}
  if ( $_GET ["item"] == wspolpraca)
 {include "wspolpraca.php";}
?> 
</div>
</td>
	<td rowspan="5">
		<img id="index_07" src="images/index_07.jpg" width="115" height="271" alt="Prawa kartka - część prawa" /></td>
	<td>
		<img src="images/spacer.gif" width="1" height="150" alt="" /></td>
</tr>
<tr>
	<td rowspan="7">
		<img id="index_08" src="images/index_08.jpg" width="238" height="196" alt="Lewa kartka - menu korekta.eu1" /></td>
	<td colspan="2" bgcolor="#E8E3E0">
		<a href="od-autora.html"><img id="kaczek_09" src="images/kaczek_09.jpg" width="166" height="36" border="0" alt="OdAutora" /></a></td>
	<td rowspan="7">
		<img id="index_10" src="images/index_10.jpg" width="152" height="196" alt="" /></td>
	<td>
		<img src="images/spacer.gif" width="1" height="36" alt="Lewa kartka - menu korekta.eu2" /></td>
</tr>
<tr>
	<td colspan="2">
		<a href="korekta-tekstu.html"><img id="index_11" src="images/index_11.jpg" width="166" height="36" border="0" alt="Korekta" /></a></td>
	<td>
		<img src="images/spacer.gif" width="1" height="36" alt="" /></td>
</tr>
<tr>
	<td colspan="2">
		<a href="oferta.html"><img id="index_12" src="images/index_12.jpg" width="166" height="34" border="0" alt="Oferta" /></a></td>
	<td>
		<img src="images/spacer.gif" width="1" height="34" alt="" /></td>
</tr>
<tr>
	<td colspan="2" rowspan="2">
		<a href="portfolio.html"><img id="index_13" src="images/index_13.jpg" width="166" height="38" border="0" alt="Portfolio" /></a></td>
	<td>
		<img src="images/spacer.gif" width="1" height="15" alt="" /></td>
</tr>
<tr>
	<td rowspan="5">
		<img id="index_14" src="images/index_14.jpg" width="115" height="263" alt="" /></td>
	<td>
		<img src="images/spacer.gif" width="1" height="23" alt="Prawa kartka - część prawa, dolna" /></td>
</tr>
<tr>
	<td colspan="2">
		<a href="kontakt.html"><img id="index_15" src="images/index_15.jpg" width="166" height="36" border="0" alt="Kontakt" /></a></td>
	<td>
		<img src="images/spacer.gif" width="1" height="36" alt="" /></td>
</tr>
<tr>
	<td colspan="2" bgcolor="#E8E6E1">
		<img id="kaczek_16" src="images/kaczek_16.jpg" width="166" height="16" alt="Lewa kartka - menu korekta.eu3" /></td>
	<td>
		<img src="images/spacer.gif" width="1" height="16" alt="" /></td>
</tr>
<tr>
	<td colspan="2" rowspan="2">
		<img id="index_17" src="images/index_17.jpg" width="366" height="188" alt="lewa kartka - menu" /></td>
	<td colspan="2" rowspan="2">
		<img id="index_18" src="images/index_18.jpg" width="190" height="188" alt="lewa kartka - część prawa, dolna" /></td>
	<td>
		<img src="images/spacer.gif" width="1" height="167" alt="" /></td>
</tr>
<tr>
	<td>
		<img id="index_19" src="images/index_19.jpg" width="329" height="21" alt="spód kartki" /></td>
	<td>
		<img src="images/spacer.gif" width="1" height="21" alt="" /></td>
</tr>
<tr>
	<td style="background-image:url('images/index_20.jpg');background-repeat:no-repeat;" colspan="6">		
<div id="linki">
| <a href="od-autora.html">Od autora</a> |
<a href="korekta-tekstu.html">Korekta</a> |
<a href="oferta.html">Oferta</a> |
<a href="portfolio.html">Portfolio</a> |
<a href="https://www.korekta.eu/blog/">Blog</a> |
<a href="kontakt.html">Kontakt</a> |
<br />
Copyright © 2007 by <a href="https://www.korekta.eu">KOREKTA.EU</a> - Profesjonalna korekta tekstów. Design by NAMSTO. Wszystkie prawa zastrzeżone.
</div></td><td>
		<img src="images/spacer.gif" width="1" height="185" alt="" /></td>
</tr>
<tr>
	<td colspan="6">
		<img id="index_21" src="images/index_21.jpg" width="1000" height="178" alt="spód strony" /></td>
	<td>
		<img src="images/spacer.gif" width="1" height="178" alt="" /></td>
</tr>
<tr>
	<td>
		<img src="images/spacer.gif" width="238" height="1" alt="" /></td>
	<td>
		<img src="images/spacer.gif" width="128" height="1" alt="" /></td>
	<td>
		<img src="images/spacer.gif" width="38" height="1" alt="" /></td>
	<td>
		<img src="images/spacer.gif" width="152" height="1" alt="" /></td>
	<td>
		<img src="images/spacer.gif" width="329" height="1" alt="" /></td>
	<td>
		<img src="images/spacer.gif" width="115" height="1" alt="" /></td>
	<td></td>
</tr>
</table>
</div>
</body>
</html>

W <div id="treść"> wyświetlane jest np. to: https://www.korekta.eu/cennik.php

Właśnie chyba w tym tkwi problem z przekierowaniem.

Dodam jeszcze .htaccess

Options +Indexes
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^korekta\.eu
RewriteRule ^(.*)$ https://www.korekta.eu/$1  [R=permanent,L]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$

RewriteRule ^index.html$ index.php [L]
RewriteRule ^oferta.html$ index.php?item=oferta [L]
RewriteRule ^od-autora.html$ index.php?item=od_autora [L]
RewriteRule ^korekta-tekstu.html$ index.php?item=korekta_tekstu [L]
RewriteRule ^korekta-tekstu2.html$ index.php?item=korekta_tekstu2 [L]
RewriteRule ^portfolio.html$ index.php?item=portfolio [L]
RewriteRule ^kontakt.html$ index.php?item=kontakt [L]
RewriteRule ^cennik.html$ index.php?item=cennik [L]
RewriteRule ^promocje.html$ index.php?item=promocje [L]
RewriteRule ^dla-kogo-oferta.html$ index.php?item=dla_kogo_oferta [L]
RewriteRule ^co-poprawiam.html$ index.php?item=co_poprawiam [L]
RewriteRule ^wspolpraca.html$ index.php?item=wspolpraca [L]

Odnośnik do komentarza
Udostępnij na innych stronach

Zrozumiałem że mam użyć:

Post pana: skowron-line
<?php
ob_start(); // to musi byc 2 linia kodu tuz po znaczniku
if(empty($xxx)||empty($yyy))
{
echo "Bład";
//ob_start();
header("Location:https://onet.pl/");
exit;
ob_end_flush();
}
?>

Tylko co wastawić zamiast "if(empty($xxx)||empty($yyy))"?

Odnośnik do komentarza
Udostępnij na innych stronach

Hmm. Bez znajomości php tego nie przeskoczę. Z tego, co rozumiem: "if(!empty($_GET['item'])) - "jeśli jest pusty", przekieruje mnie na dany adres. Ale pod normalnym, jak i przyjaznym url-em jest ta sama strona. Zresztą ta ramka w php jest źle zrobiona i mam tego świadomość, ale myślałem początkowo, że mi to wystarczy.

Mam taką koncepcję:

if(empty($_GET['item'])) $_GET['item']="korekta_tekstu"; // A zawsze jest pusty i musi ładować korekta_tekstu jako strone główną. I od tego momentu jest już zawsze pełny

if ( $_GET ["item"] == od_autora)

{include "od_autora.php";}

Dopiero taki link przekształcany jest w php na html. w tym przypadku

index.php?item=od_autora na od-autora.html (w .htaccess). I google zaindeksuje to pewnie jako duplicate content. I pewnie jak już ten skrypt otworzy w tej ramce stronę index.php?item=od_autora, to nie będę mógł jej stamtąd przekierować na od-autora.html

............................

...........................

?>

Co do meta tagów, o których pisałem, też będzie problem, ponieważ zdaję sobie sprawę z tego, że skoro już ładuję tagi dla całej strony, to nie mogę załadować ich ze stroną do ramki. Nie wiem, czy sie dobrze wyraziłem. Czy da się zrobić tak:

Jeśli w przeglądarce wyświetli się adres www.xxx.eu/cennik.html, to wyświetlą się tagi 1, a jeśli www.xxx.eu/kontakt.htmlo, to wyświetlą się tagi meta 2?

Ale to pewnie musiałbym zrobić w głównym pliku index.php w znacznikach meta.

Dzięki za pomoc yankesxx. Poszukam w necie na ten temat i może uda mi się coś sklecić. Jak bym miał dalej problem, to zwrócę się w tym temacie o dalszą pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Warning: Cannot modify header information - headers already sent by (output started at /index.php:8) in /kontakt.php on line 2

W index.php nie mogę tego ustawić. To musi być na podstronie np. kontakt.php

Jak miałoby wyglądać przekierowanie podstron na podstawie tego pliku:

Options +Indexes
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^korekta\.eu
RewriteRule ^(.*)$ https://www.korekta.eu/$1  [R=permanent,L]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$

RewriteRule ^index.html$ index.php [L]
RewriteRule ^oferta.html$ index.php?item=oferta [L]
RewriteRule ^od-autora.html$ index.php?item=od_autora [L]
RewriteRule ^korekta-tekstu.html$ index.php?item=korekta_tekstu [L]
RewriteRule ^korekta-tekstu2.html$ index.php?item=korekta_tekstu2 [L]
RewriteRule ^portfolio.html$ index.php?item=portfolio [L]
RewriteRule ^kontakt.html$ index.php?item=kontakt [L]
RewriteRule ^cennik.html$ index.php?item=cennik [L]
RewriteRule ^promocje.html$ index.php?item=promocje [L]
RewriteRule ^dla-kogo-oferta.html$ index.php?item=dla_kogo_oferta [L]
RewriteRule ^co-poprawiam.html$ index.php?item=co_poprawiam [L]
RewriteRule ^wspolpraca.html$ index.php?item=wspolpraca [L]

Odnośnik do komentarza
Udostępnij na innych stronach

Rozwiązanie problemu w tym temacie:

https://www.forum.optymalizacja.com/lofiversion...php/t14170.html

:)

Teraz pozostał tylko problem dotyczący dopisania znaczników title i meta do każdej podstrony.

Moja koncepcja:

<title><? coś includowane ?></title>

Jeśli jesteśmy na stronie cennik.html --> wyświetla tytuł cennika zdefiniowany w zewnętrznym pliku title.php.

Nie wiem jeszcze jak tego dokonać.

EDIT:

Częściowe rozwiązanie znalazłem tu: https://www.forum.optymalizacja.com/index.php?s...st&p=178421

Czy ktoś może wie jak do tego dodać pozostałe tagi? keywords i discription?

Odnośnik do komentarza
Udostępnij na innych stronach

Moja koncepcja:

<title><? coś includowane ?></title>

A może np w pliku

od_autora.php itd

<? $title='Tytuł podstrony';

?>

analogicznie keywordsy i description .. i później w kodzie header-a dać

<title><?=$title?></title>

Tylko jeszcze trochę trzeba poprzestawiać kod ... header wstawić do zmiennej, footer i aktualna podstrone .. i na końcu wszystko wyświetlać ..

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności