Skocz do zawartości

[php] Include, a indeksowanie przez Google


k0l3c

Rekomendowane odpowiedzi

Mam stronę o mniej więcej takiej budowie:

(index)
include 'meta.php';
if(isset($_zmienna)) {
include 'podstrona/zmienna.php';
}
else {
echo 'Witamy na głównej';
}
include 'stopa.php';

(zmienna.php)
echo 'treść zmiennej';

I teraz roboty Google indeksują wszystko ładnie z przyjaznymi urlami itd, ale indeksują również samą podstronę zmienna.php, przez co nie ma ona złączonych meta.php, stopa.php, a co za tym idzie, posiada błędy i nie ma css.

Jak zapobiegać takim sytuacjom? i innym np. żeby dopisywanie nieistniejących wartości dla zmiennej nie było traktowane jako podstrona?

Rozumiem, że w drugim przypadku skrypt powinien sprawdzić czy istnieje podstrona/wartość zmiennej i jeżeli nie, to ma zwrócić 404. (dobrze?)

I co w takim razie w tym pierwszym wypadku? jak uniknąć porblemu nie umieszczając strony w bazie danych tylk operując na plikach?

penguins.jpg

Odwiedzaj regularnie mój blog o seo na lukaszt.pl podobno warto ;)

Odnośnik do komentarza
Udostępnij na innych stronach

taki OT: Uwsteczniasz się kolego lub mielisz kołami w miejscu ....

Pozdrawiam

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Mion podpowiedz.

Jeżeli chodzi o budowę to rzeczywiście stoję w miejscu ale chcę to ruszyć stąd pytanie.

Jak w teorii to rozwiązać?

Chcę uniknąć includowania stopy, menu, headera itd w każdym pliku.

Wszystko jest w index.php i on to includuje dodadkowo ładując konkretną podstronę, którą ma w zmiennej.

Tutaj wszystko ładnie działa. Problem polega na tym, że roboty Google mają to gdzieś i znajdują nie tylko linki ze strony, ale i same pojedyncze pliki, które są includowane przez co robi się bałagan.

penguins.jpg

Odwiedzaj regularnie mój blog o seo na lukaszt.pl podobno warto ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Chcę uniknąć includowania stopy, menu, headera itd w każdym pliku.

Zainteresuj się projektem:

https://kohanaframework.org/

https://cakephp.org/

https://framework.zend.com/

Bo nie ma sensu robić tego w ten sposób jak TY :olaboga:

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

To co? ma ktoś szybkie rozwiązanie tego problemu?

Czy na każdej z includowanych podstron mam dodać, że jeżeli nie zdefiniowano zmiennej, która jest tylko w index.php (bo na nim się strona opiera) to ma wywalić 404?

penguins.jpg

Odwiedzaj regularnie mój blog o seo na lukaszt.pl podobno warto ;)

Odnośnik do komentarza
Udostępnij na innych stronach

To co? ma ktoś szybkie rozwiązanie tego problemu?

Ale jaki właściwie jest ten problem ?

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Taki że mam adres www.domena.pl/produkty, a jak wpiszę www.domena.pl/produktydsadsadkmamd to nie ma 404, tylko jest pusta strona czyt. logo, menu, stopa itd, ale bez treści bo nie includuje jej. (bo przecież nie istnieje)

Źle to rozwiązałem już na samym początku, dla tego chcę to jakoś poprawić bez przepisywania całej strony lub umieszczania jej w mysql.

No i chciałem wiedzieć jak temu zapobiegać na przyszłość, jak to się robi, bez użycia frameworków.

penguins.jpg

Odwiedzaj regularnie mój blog o seo na lukaszt.pl podobno warto ;)

Odnośnik do komentarza
Udostępnij na innych stronach

<?php
//pytanie jest skąd bierzesz nazwę zmiennej, przy założeniu, że jest to tak
$_zmienna=basename($_SERVER['REQUEST_URI']);
if ($_zmienna==='') $_zmienna='index';//jeśli strona główna to wtedy ma być plik index
include './meta.php';
$plik='./podstrona'.$_zmienna.'.php';
if(is_file($plik)) {
include $plik;
} else {
include './podstrona/404.php';
}
include './stopa.php';
?>

  • W podstrona/404.php pamietaj o header("HTTP/1.0 404 Not Found");
  • basename ze względów bezpieczeństwa bo includujemy plik w oparciu o to co wpisze użytkownik i chcemy by był z naszego serwera ;)

Ps: W przyszłości poczytaj o routingu w php.

Radeq blog - już mniej o SEO ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Rozwiązań dla 404 serwisu opartego na include może być wiele. Jednym z nich będzie utworzenie tablicy z uprawnionymi podstronami

<?php
// na samym przed wysłaniem czegokolwiek do OUT
$urlStrony = /// obsluz pobranie URL zadanego adresu wwww
$uprawnione = array("Mac", "NT", "Irix", "Linux");
if (in_array($urlStrony, $uprawnione) == false)
{
header("HTTP/1.0 404 Not Found");
include('my404.php');
exit;
}

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Działa metoda Radeqa, ale nie mogę nadpisać headera, bo został wcześniej wysłany.

jak ujmę kod w ob ob_start() i ob_end_flush() to wszystkie strony, nawet istniejące mają nagłówek z pliku 404.php

penguins.jpg

Odwiedzaj regularnie mój blog o seo na lukaszt.pl podobno warto ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Działa metoda Radeqa, ale nie mogę nadpisać headera nawet istniejące mają nagłówek z pliku 404.php
Jak działa kod zależy przeważnie ;) od jego programisty - autora. Ty nie starasz się pisać kodu tylko go zlepiać z kawałów i dlatego "ci nie działa", bo robisz to całkowicie bezmyślnie :olaboga:

EOT.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

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