Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Apache _ ścieżka url dla ajax-a przy htaccess

Napisany przez: blackstone 17.07.2018, 16:56:42

Mam taki problem związany obsługą połączenia na lini js<>php przez ajax. Mam projekt strony działajacy na zasadie "przyjaznych linków" dzięki plikowi htaccess.

O to jego zawartośc

  1. RewriteEngine on
  2. RewriteBase /mysite/
  3.  
  4.  
  5. RewriteCond %{THE_REQUEST} \s/+web/tag\?q=([^\s&]+) [NC]
  6. RewriteRule ^ /mysite/tag/%1? [R=302,L]
  7.  
  8. RewriteEngine On
  9. RewriteRule ^(.+)/$ index.php?move=$1 [L]
  10. RewriteRule ^(.+)/$ index.php?move=$1 [L]
  11. RewriteRule ^(.+)/$ index.php?move=$1&szukaj=$2 [L]
  12. RewriteRule ^(.+)/$ ^panel.php[L]


Wszystko działa dobrze, ale mam problem z napisaniem prawidłowego adresu w pliku js ( z którego korzysta plik indeks.php który obsługuje stronę) dla funkcji jquery load() który ma pobierać dane z pliku php ( plik ten pobiera dane z bazy danych). Sytuacja jest taka że plik php i js są obok siebie w jednym folderze.

Próbowałem w pliku js adresów 'search_service.php' oraz '[::1]/mysite/js/search_service'.
Zaś w pliku htaccess próbowałem zablokować jego działanie dla tego pliku js na następującymi regułkami.

RewriteRule ^(.+)/$ ^js/search_service.js[L]
RewriteRule ^(.+)/$ ^/js/search_service.js[L]
RewriteRule ^(.+)/$ ^./js/search_service.js[L]

Jestem zdecydowanie słabo obeznany w zagadnieniach związanych z htaccess, skończyły mi się koncepty które mogłem wykonać, dlatego chce zapytać co dalej mogę zrobić żeby uruchomić połączenie? Dodam że strona postawiona jest narazie na webserv dla windows a docelowo ma się znajdować na zwykłym hostingu cba.pl ( piszę to bo gdzieś wyczytałem że rodzaj serwera może mieć tu znaczenie). Z góry dzięki za sugestie.












Napisany przez: trueblue 17.07.2018, 18:44:41

Cytat(blackstone @ 17.07.2018, 17:56:42 ) *
  1. RewriteEngine On
  2. RewriteRule ^(.+)/$ index.php?move=$1 [L]
  3. RewriteRule ^(.+)/$ index.php?move=$1 [L]
  4. RewriteRule ^(.+)/$ index.php?move=$1&szukaj=$2 [L]
  5. RewriteRule ^(.+)/$ ^panel.php[L]

Tylko pierwsza reguła się wykona, resztę możesz wyrzucić.

Cytat(blackstone @ 17.07.2018, 17:56:42 ) *
Zaś w pliku htaccess próbowałem zablokować jego działanie dla tego pliku js na następującymi regułkami.

Szczerze mówiąc nie wiem czy to o czym myślę, jest tym co chcesz w tym zdaniu przekazać.
Przy ładowaniu plików poprzez Ajax należy kierować się zasadami ścieżek względnych i bezwzględnych.
Nie ma znaczenia skąd jest ładowany plik .js, natomiast ma znaczenie pod jakim adresem jest strona, kiedy wywoływane jest żądanie z tego skryptu.
Jeśli strona jest pod adresem http://domena.pl/abc/ i wywołasz adres skrypt1.php, to ten będzie ładowany z adresu http://domena.pl/abc/, jeśli wywołasz adres /skrypt1.php, to będzie ładowany z adresu http://domena.pl/



Napisany przez: blackstone 18.07.2018, 13:41:59

Ok, wystarczyło dodanie ( w pliku js ) segmentu adresu z znazwą strony bez [::1] czyli /mysite/ajax/search_service.php. Dzięki za sugestie!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)