• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Przekierowanie w htaccess z wyłączeniem jednej ścieżki

Object Storage Arubacloud
0 głosów
236 wizyt
pytanie zadane 31 lipca 2020 w Inne języki przez Riddick Bywalec (2,600 p.)
zamknięte 1 sierpnia 2020 przez Riddick
Witam, chciałbym postawić na jednym serwerze aplikację w react i headless cms do niego w podkatalogu i mam problem z napisaniem odpowiedniego przekierowania w htaccess do tego. Plik htaccess powinien przy każdym adresie (zachowując jego ścieżkę) zwracać plik index.html z wyjątkiem adresów zaczynających się na /cockpit. Szukałem w różnych miejscach i próbowałem różnych zapisów, niestety nic nie działa a przynajmniej nie na localhoście. Headless CMS ma własne przekierowania i tam wszystko działa więc z konfiguracją wszystko jest ok.
komentarz zamknięcia: Rozwiązanie znalezione
komentarz 1 sierpnia 2020 przez Riddick Bywalec (2,600 p.)
Ale po co mi routing po stronie serwera skoro routing już jest po stronie klienta. Jedyne co muszę zrobić to dać mały plik htaccess aby wszystko działało jak należy a jak się nie da to zrobię api na subdomenie po prostu a do aplikacji dam prostszy plik htaccess bez tej dodatkowej ścieżki. Nie ma sensu tworzyć dodatkowego kodu po stronie serwera z czymś co już jest napisane, to zbędne powielanie kodu. Ale chcę to zrobić w jednym folderze bo to coś czego nie potrafię na tą chwilę i chcę się tego nauczyć. Także, chętnie przyjmę jakiekolwiek poradniki o htaccess, niekoniecznie musi to być gotowe rozwiązanie, chyba, że ktoś już coś takiego robił i ma gotowy kod na to.
1
komentarz 1 sierpnia 2020 przez VBService Ekspert (253,340 p.)
edycja 1 sierpnia 2020 przez VBService

A czytałeś choćby jeden artykuł, który tobie podlinkowałem The Simplest PHP Router, jest w nim mowa o: wink

mały plik htaccess

i pliku ze strasznie duuuuuuuuużą (ok. 430 Bajtów) ilością kodu w php:

<?php

$request = $_SERVER['REQUEST_URI'];

switch ($request) {
    case '/' :
        require __DIR__ . '/views/index.php';
        break;
    case '' :
        require __DIR__ . '/views/index.php';
        break;
    case '/about' :
        require __DIR__ . '/views/about.php';
        break;
    default:
        http_response_code(404);
        require __DIR__ . '/views/404.php';
        break;
}
?>

FYI, takie praktyki się stosuje. wink

When to use “client-side routing” or “server-side routing”?

jeśli "musisz" (chcesz) użyć .htaccess:

Wykaz popularnych funkcji pliku .htaccess

  • Kontrola dostępu do zasobów (konfiguracja ukrytego katalogu) – w pliku .htaccess określisz zasady dostępu do katalogu. Tak przygotowany plik należy opublikować na serwerze FTP w katalogu, do którego dostęp ma zostać ograniczony.

  • Ograniczanie dostępu do zasobów (za pomocą plików .htaccess oraz .htpasswd) – alternatywna możliwość zabezpieczania dostępu do katalogu/strony WWW za pomocą hasła dostępu.

  • Definiowanie strony startowej – domyślnie tzw. “plikami startowymi” są pliki typu index, np. “index.html” lub “index.php”. Za pomocą tej funkcjonalności możesz samodzielnie zdefiniować który plik będzie startowy.

  • Definiowanie stron błędów – za pomocą pliku .htaccess możesz zdefiniować reakcję na pojawienie się błędu przy wywołaniu Twojej strony WWW.

  • Definiowanie MimeType – MimeType to rozszerzenia, które są zwracane przeglądarce WWW po wywołaniu znajdującego się na serwerze typu pliku.

  • Definiowanie ustawień listowania wybranego katalogu – funkcja listowania zawartości katalogu jest szczególnie użyteczna w sytuacji, kiedy bezpośrednio ze strony WWW chcesz umożliwić ściąganie wielu plików bez potrzeby każdorazowego wykonywania dokumentu HTML.

  • Blokowanie problematycznych użytkowników po adresie IP/host – Najbardziej efektywny sposob zablokowania niechcianych użytkowników, który pozwoli na zablokowanie ich “u źródła”, czyli po adresie IP lub host.

  • Ustawienie interpretera skryptów – Używając polecenia :Location możesz zdefiniować rodzaj interpretera dla stron o danym rozszerzeniu i lokalizacji.

  • Przekierowanie 301 – jest to sposób na przekierowanie użytkownika z jednego adresu URL na inny. Ocenia się, że jest to najlepsze rozwiązanie z punktu widzenia pozycjonowania strony WWW.

  • Przekierowanie domeny na podkatalog – skorzystaj z pliku .htaccess oraz przekierowania 301, aby przekierować domenę na wybrany podkatalog.

  • Przepisywanie adresów (mod_rewrite) – pozwala na automatyczną zamianę (przepisanie) długich, trudnych do zapamiętania linków na bardziej przyjazne adresy URL dla użytkowników oraz wyszukiwarek internetowych.

  • Korzystanie z komendy “Expires” – w home.pl możesz używać komendy “Expires” w pliku .htaccess na serwerach współdzielonych. Stosując kombinacje komend “:Location” oraz “Expires” możesz ustalić ważność pobieranych dokumentów.

  • Inne przydatne funkcje – plik .htaccess jest wykorzystywany również do wielu innych przydatnych operacji, np. obsługa różnych typów przekierowań.

komentarz 1 sierpnia 2020 przez Riddick Bywalec (2,600 p.)

Chyba to mam

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.html [NC,QSA]

W folderze cockpit jest jego własny plik htaccess, który w tym katalogu ma najwyraźniej nadrzędną funkcję dla katalogów CMSa więc to działa jak należy. Problem natomiast jest innej natury. Apikacja jest zrobiona tak aby cachowała wszystkie dane i działała nawet bez internetu a to uniemożliwia przejście do CMSa chyba, że się odświeży stronę z klawisze CTRL lub wyczyści pamięć strony, wtedy odpala się CMS. Z drugiej strony jest to nawet ciekawy element zabezpieczający zastanawiam się teraz jak to ominąć, może na subdomenie by nie było tego problermu.

komentarz 1 sierpnia 2020 przez Riddick Bywalec (2,600 p.)
Tak czytałem tylko ten plik php jest zupełnie zbędny. Zamiast niego wystarczy wpisać index.html w htaccess jak podałem wyżej. Natomiast to co jest w pliku php jest zwyczajną redundancją i nie sprawdzi się w moim przypadku gdyż tych ścieżej jest sporo i są one dynamiczne. Samo przekierowanie do index.html wystarczy aplikacja sama obsłuży to wszystko.
1
komentarz 1 sierpnia 2020 przez Riddick Bywalec (2,600 p.)

Dzięki za ten wykaz funkcji do htaccess, to bardzo przydatna rzecz i pewnie nie raz z tego skorzystam smiley

komentarz 1 sierpnia 2020 przez VBService Ekspert (253,340 p.)

@Riddick, Może to będzie pomocne, jak chcesz uzyskać efekt "odświeżenia", bez "zmuszania" użytkownika do wciśnięcia CTRL+F5 wink. Dodać kod pod przycisk, link, wywołać po jakimś określonym czasie (How to detect online/offline event cross-browser?): Clear the cache in JavaScript

1
komentarz 1 sierpnia 2020 przez Riddick Bywalec (2,600 p.)
@VBService Dzięki za podpowiedź. Jeszcze będę myślał nad tym jak to rozwiązać, mogę dodać po prostu funkcję która na danym roucie czyści pamięć i odświeża jednak jeśli wstawienie tego na subdomenie rozwiąże problem to wydaje mi się to lepszym rozwiązaniem. O ile to zadziała oczywiście. Wielkie dzięki za pomoc.

Podobne pytania

0 głosów
0 odpowiedzi 115 wizyt
pytanie zadane 6 stycznia 2018 w Inne języki przez Paweł123 Nałogowiec (33,500 p.)
0 głosów
1 odpowiedź 90 wizyt
pytanie zadane 11 czerwca 2020 w HTML i CSS przez Bakkit Dyskutant (7,600 p.)
0 głosów
0 odpowiedzi 252 wizyt

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...