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
RewriteEngine on
RewriteBase /mysite/
RewriteCond %{THE_REQUEST} \s/+web/tag\?q=([^\s&]+) [NC]
RewriteRule ^ /mysite/tag/%1? [R=302,L]
RewriteEngine On
RewriteRule ^(.+)/$ index.php?move=$1 [L]
RewriteRule ^(.+)/$ index.php?move=$1 [L]
RewriteRule ^(.+)/$ index.php?move=$1&szukaj=$2 [L]
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 )
RewriteEngine On
RewriteRule ^(.+)/$ index.php?move=$1 [L]
RewriteRule ^(.+)/$ index.php?move=$1 [L]
RewriteRule ^(.+)/$ index.php?move=$1&szukaj=$2 [L]
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!