logowanie .htaccess użytkownikami z psql’a

Apache pozwala na bardzo proste zabezpieczenie dostępu do serwisu z wykorzystaniem użytkowników znajdujących się w bazie danych, a dokładniej w tym przypadku w postgresie.

Oprócz modułu mod_auth należy dodać auth_pgsql oraz odpowiednio skonfigurować dane bazy:

AuthName "relam name"
AuthType basic
AuthBasicAuthoritative Off
Auth_PG_host localhost
Auth_PG_port 5432
Auth_PG_user db_user
Auth_PG_pwd db_password
Auth_PG_database db_name
Auth_PG_pwd_table table_name
Auth_PG_uid_field field_username
Auth_PG_pwd_field field_password
Auth_PG_encrypted off
require valid-user

Jak widać na przykładzie podajemy dane dostępowe do serwera, bazy danych, tabeli i nazwy pól. Mam nadzieję, że konwencja którą przyjąłem jest łatwa do odgadnięcia gdzie należy wpisać odpowiednie dane.

Przy autoryzacji tego typu należy pamiętać, że hasło jest z przeglądarki wysyłane otwartym tekstem, więc na połączeniu nieszyfrowanym jest ono łatwe do przechwycenia.

WordPress – kłopot z permlinkiem

promotivls zapytał na blipie:

Zmieniłem ustawienia stałych linków i teraz mam w całym serwisie error 403. Jak przywrócić domyślne ustawienia

Na czym polega problem?

Ustawienie budowy odnośników na inną opcję niż domyślna powoduje, że serwis musi mieć prawidłowo skonfigurowane reguły „rewrite”, które są odpowiedzialne za przepisywanie adresu na taki, który będzie zrozumiały dla wordpressa.

Domyślnie wordpress ma plik .htaccess skonfigurowany dla serwera apache’a i wygląda on następująco:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

i sumarycznie działa tak, że jeżeli nie istnieje plik lub katalog o który pytamy to całość zostaje skierowana do pliku /index.php – a to co tam się dzieje z danymi zależy już od wordpress’a.

Aby całość działała serwer apache’a musi mieć załadowany moduł mod_rewrite oraz być tak skonfigurowany, żeby pozwalał na definiowanie reguł przez serwis, czyli opcja AllowOverride ustawiona na All (domyślne ustawienie).

rozwiązanie

Rozwiązaniem jest skasowanie wartość permalink_structure z tabeli opcji (domyślnie) wp_options.
UPDATE wp_options SET option_value = NULL WHERE option_name = 'permalink_structure';
Oraz skasowanie wytworzonego pliku .htaccess

czy można mieć dwie strony 404 w jednym serwisie

Tomasz zapytał:

Mam takie pytanie: czy można dokonać mieć DWIE strony 404? Jedna, która dotyczyłaby całego portalu www.jakis_portal.pl, a druga, gdyby nie została znaleziona strona w konkretnym folderze www.jakis_portal.pl/folder_jakis_tam

Chciałbym skorzystać z Pana doświadczenia i zapytać się, czy jest to możliwe?

Jest to jak najbardziej możliwe. Sposobów do wykonania jest zapewne kilka. Podam dwa najprostsze.

Generalnie to co zostanie wyświetlone w ramach błędu 404 jest określone albo w konfiguracji virtuala, lub (obecnie jest to standard) określone jest w pliku .htaccess. Samo obsługę definiujemy w następujący sposób:

ErrorDocument 404 /katalog-do-pliku/plik-z-obsluga-404.html

  1. obsługa błędu za pomocą pliku skryptu (np. php) w którym będziemy uzależniać wynik od co znajdzie się w zapytaniu do serwera
  2. wytworzenie pliku .htaccess w podkatalogu z wykorzystaniem innych plików błędu