Wywołanie przyjaznych linków

0

Witajcie,

Mam problem na stronie, którą się aktualnie zajmuję (poprawa funkcjonalności i błędów) - www.firma-skiba.pl.
Mianowicie chodzi o kwestię wywoływania w przeglądarce linków mojej strony.
Linki są przepisane na przyjazny format, tzn:

http://www.firma-skiba.pl/bestsellery
http://www.firma-skiba.pl/kategoria/1/Akcesoria
http://www.firma-skiba.pl/produkt/245/

Przeglądając stronę i klikając w linki na niej wszystko jest ok i wszystko działa (bo też ładuje się to bez przeładowania strony, w oparciu o Js, Ajax), lecz zasadniczy problem jest wówczas kiedy dany link, powiedzmy np. http://www.firma-skiba.pl/kategoria/1/Akcesoria wywołam samemu, np. wklejając go w okno przeglądarki i wywołując - to zawsze wyrzuca mnie do strony głównej.

Zamieszczam zawartość pliku .htaccess:

Options FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^admin/Statystyki/(.*)/(.*)$ admin/templates/module.php?module=Statystyki&rok=$1&miesiac=$2 [L]
RewriteRule ^admin/Statystyki/(.*)$ admin/templates/module.php?module=Statystyki [L]
RewriteRule ^admin/Produkty/Pokaż/(.*)$ admin/templates/module.php?module=Produkty&option=Pokaż&produkt=$1 [L]
RewriteRule ^admin/Produkty/Powiel/(.*)$ admin/templates/module.php?module=Produkty&option=Pokaż&clone=$1 [L]
RewriteRule ^admin/Produkty/Magazyn/(.*)$ admin/templates/module.php?module=Produkty&option=Magazyn&produkt=$1 [L]
RewriteRule ^admin/Zamówienia/Detale/(.*)$ admin/templates/module.php?module=Zamówienia&option=Detale&id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^admin/(.*)/(.*)$ admin/templates/module.php?module=$1&option=$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^admin/(.*)$ admin/templates/module.php?module=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA]

Uprzejmie proszę o pomoc w rozwiązaniu tego problemu, o naświetlnie jakoś kwestii rozwiązania tego.

Z góry bardzo dziękuję.

0

Przeglądając stronę i klikając w linki na niej wszystko jest ok i wszystko działa (bo też ładuje się to bez przeładowania strony, w oparciu o Js, Ajax), lecz zasadniczy problem jest wówczas kiedy dany link, powiedzmy np. http://www.firma-skiba.pl/kategoria/1/Akcesoria wywołam samemu, np. wklejając go w okno przeglądarki i wywołując - to zawsze wyrzuca mnie do strony głównej.

Przecież tym ajaxem strona nie wczytuje linka spod href...

function loadContent(url) {
  // ..
  var split = url.split('/');
  switch (split[0]) {
  // ..
  case 'produkt':
        $.get('app/services/productsService.php', {action: 'getProduct', id: id}, function(data) {
          var response = eval('(' + data + ')');
          $('#products-title').text('Szczegóły produktu');
          renderProduct(response.product);
        });
        break;
  // .. itd

Skoro jest taka proteza, to równie dobrze w linku mógłbyś wstawić "dupadupadupa" i napisać sobie case, który wywoła wtedy productsService.php.

Tej protezy powinienś pozbyć się całkowicie, a wszystkie przekierowania robić tylko w htaccess!

Po dalszej analizie treść, która pokazuje się po próbie dostania się do tego, co ładujesz ajaxem:
http://www.firma-skiba.pl/app/services/productsService.php?action=getProductsOfCategory&id_cat=1&page=0&page_size=12

To wszystko to jest jakaś MASAKRA. Nie będę jechał po autorze, bo nie wypada, ale naprawdę - on nigdy więcej nie powinien dotykać komputera. Ta strona nie będzie się normalnie indeksować (być może Google sobie jeszcze jakoś poradzi, ale inne przeglądarki nie bardzo), nie będzie działać w ogóle bez javascriptu, może nie działać na telefonach i masa innych problemów.

Najszybszy sposób (kolejna proteza do niepełnosprawnej strony) to wywołanie po załadowaniu strony tego:

loadContent(window.location.pathname.substr(1));
0

Ja nie jestem autorem tej strony - ja mam tylko "przyjemność" łatać te tragiczne błędy.. Sporo już poprawiłem, bo było sporo gorzej z funkcjonalnością strony ogólnie.

Co zatem proponujesz? Mógłbyś mi naświetlić jakoś co zrobić, aby to działało jak należy - ewentualnie proszę naświetl co i jak mam zrobić.

0

Patrząc na fantazję autora - żeby to zrobić jak należy to poświęcisz więcej czasu niż to jest warte. Zastosuj protezę z ostatniej linijki mojego posta, weź zapłatę i zapomnij o tym.

0

:/

Ok, czyli mówisz żeby wkleić to do każdego pliku php, który jest rzekomo wywoływany bezpośrednio przez przeglądarkę, tak?

0

Nie. To jest przecież kod javascript.

0

Wiem wiem, że to jest javascript, ale w plikach php tej strony jest wielka mieszanka i przeplatanka php i javascript, dlatego też nie wiembardzo za gdzie tą protezę mogę umieścić.

0

Mam wrażenie, że nie tylko Twój poprzednik nie wiedział co w ogóle robi ...

Na końcu głównego pliku ze skryptami (tego, skąd wziąłem powyższe fragmenty) dorzuć, oczywiście w document ready.

0

Sklep ten stworzyła firma, do której link jest na dole strony.. Niestety owa firma, nie odbiera telefonów, ani też nie odpisuje na maile..

Zrobiłem: na końcu pliku shop-jq.js umieściłem: $( document ).ready(loadContent(window.location.pathname.substr(1)));

Niestety bez zmian..
Jeśli masz pomysł, proszę o radę.

0

Problem rozwiązałem już.
Zastosowałem coś takiego:

$().ready(function() {
var path = location.pathname.replace('/', '');
loadContent(path);

Dziękuję za rady i poświęcony czas :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1