Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Stare linki - miniturka, Nice URLs - nie ma.
Forum PHP.pl > Forum > Przedszkole
GoldeNx3
Witam! Miałem na mojej stronie taki link:


http://strona.pl/obrazek&id=12/

Przerobiłem sobie stroną na nice URLs i link wygląda tak:

http://strona.pl/obrazek/12/


Gdy udostępniałem na facebook'a pierwszy link (Ten gdzie jest ID) to miniaturka strony się pokazywała na facebooku. A teraz gdy udostępniam link z nice URL, to miniaturka już się nie pojawia, czemu?
markonix
Czasami miniaturki pojawiają się z opóźnieniem np. wczoraj dopiero po 2h zobaczyłem "podgląd linku".
A pierwszy i drugi obrazek różniły się jednym znakiem (1.jpg, 2.jpg) więc wątpię żeby to była przyczyna techniczna.
GoldeNx3
Ale od wczoraj do dziś nie ma miniaturek.. A jak wgram stare linki, to działa..
markonix
Jakieś przekierowania?
Czy inne linki próbowałeś?
Może bez / na końcu?
GoldeNx3
Zauważyłem, że obrazka nie pokazuje tylko, jeżeli jest więcej niż jeden parametr..

http://strona.pl/obrazek

Tak pokaże miniaturkę

http://strona.pl/obrazek/171

Tak już nie pokaże miniaturki.

Mój .htaccess:


  1. RewriteEngine on
  2. RewriteCond %{REQUEST_FILENAME} !-f
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteRule ^(.*)$ index.php?$1 [QSA,L]


I do tego klasa:

  1. <?php
  2.  
  3. class url //Tworzymy klasę "url".
  4. {
  5. public $request = array(); //Tworzymy zmienną która będzie przechowywać wartości parametrów w tablicy.
  6.  
  7. function __construct() //Tworzymy funkcje która pierwsza się wykona.
  8. {
  9. $url_all = trim($_SERVER['REQUEST_URI'], '/'); //Usuwamy zbędne slashe.
  10. if(empty($url_all)) //Jeśli treść linku jest pusta...
  11. $this->request[0] = 'index.php'; //Ustawiamy domyślną wartość.
  12. else //Jeśli treść linku istnieje...
  13. {
  14. $url_array = explode('/', $url_all); //Rozdzielamy paramtery.
  15. $this->request[0] = $url_array[0]; //Ustawiamy wartość 1, mamy pewność że istnieje.
  16. if(isset($url_array[1])) //Jeśli istnieje więcej paramterów...
  17. for($i=1; $i < count($url_array); $i++) //Robimy pętle by wyłowić wszystkie parametry.
  18. $this->request[$i] = $url_array[$i]; //Ustawiamy wartość dla odpowiedniej tablicy.
  19. }
  20. }
  21. }
  22. ?>



$url = new url;
$url->request[0] - pierwszy parametr
$url->request[1] - drugi parametr

etc.

Pomoże ktoś?
Fafu
Zapewne w kodzie strony link do miniaturki masz w stylu
obrazki/miniaturka.jpg
Gdy wchodzisz na nowy adres (z przyjaznymi linkami) - np. /obrazek/12/ to przeglądarka myśli że wszedłeś w folder "obrazek" a później w folder "12" czyli facebook szuka miniaturki w folderze
/obrazek/12/obrazki/miniaturka.jpg

Aby rozwiązać ten problem albo dodaj link do miniaturki w pełnej postaci - np. http://strona.pl/obrazki/miniaturka.jpg
albo dodaj znak / przed linkiem dzięki temu będzie pobierać miniaturkę z głównego folderu - np. /obrazki/miniaturka.jpg
GoldeNx3
Super! Wszystko działa jak należy, dziękuję.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.