Michał Sosnowski

Michał Sosnowski grafik/webmaster

Temat: .htaccess i historia

W pliku .htaccess mam taką regułę :
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]


czyli kieruje każde wywołanie na $_GET['url'] i w php sobie to już obrabiam..

Problemem jest to, że tworzę tymczasową historię wejść($_SERVER['REQUEST_URI']) i prawdopodobnie powyższy zapis pokazuje mi w historii ścieżki do plików graficznych, i innych niepożądanych danych.. Poniżej przedstawiam listę tych niepożądanych wpisów


/kategoria/wulkanizacje-ID21?1354104343 //co to jest za numer?? wogóle taiego linku nie ma w serwisie
/images/logos/thumbs/14.jpg
/favicon.ico


Jak zrobić że te wpisy nie zapisywały mi się do bazy ponieważ tylko zaśmiecają??
Mariusz Witek

Mariusz Witek Programista PHP,
Front-End Developer

Temat: .htaccess i historia

Wrzuć cały .htaccess, być może jest tam coś więcej, co może wymagać poprawy.

Dodaj warunki do reguły:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

Dzięki nim Twoja reguła nie będzie łapała istniejących plików.

?1354104343

Jest to timestamp, który dodany do adresów plików statycznych zapobiega wczytywaniu ich wcześniejszych wersji z cache przeglądarki.Mariusz Witek edytował(a) ten post dnia 30.11.12 o godzinie 12:02
Michał Sosnowski

Michał Sosnowski grafik/webmaster

Temat: .htaccess i historia

ok cały htacces

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.nazwa-domeny.pl(.*) [NC]
RewriteRule ^(.*)$ http://nazwa-domeny.pl/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]


najlepsze że często mam taki wpis
/nieprawidlowe-dane/


po niespełnieniu odpowiednich warunków na danej stronie jest robiony redirect (funkcją header) właśnie do strony nieprawidłowe-dane... najlepsze że historia wypluwa mi ten wpis nawet jak warunki są spełnione i takie przekierowanie nie nastąpiło...

konto usunięte

Temat: .htaccess i historia

Przepuszczaj przez PHP tylko te pliki które nie są statyczne, inne (css|jpg|jpeg|png|css|...) przepuszczaj poza PHP.

Jeżeli już chcesz przepuszczać wszystko przez PHP to:
- sprawdzaj rozszerzenie danego zapytania, np: logo.png, rozszerzenie == png więc nie zapisuję do bazy
- usuwaj wszystko za znakiem ? w zapytaniuSebastian Poddubiuk edytował(a) ten post dnia 01.12.12 o godzinie 03:05

konto usunięte

Temat: .htaccess i historia

przekierowuj wszystko, a w indexie sobie tylko filtruj.


preg_match("/(.*?)\.(php|html|htm)(.*?)/", $url)
Michał Sosnowski

Michał Sosnowski grafik/webmaster

Temat: .htaccess i historia

a jak taki preg_match miałby wyglądać kiedy mam linki w takiej postaci :


http://nazwa-domeny.pl/zglos-firme
http://nazwa-domeny.pl/kategoria/nazwakategori-ID4
http://nazwa-domeny.pl/edycja-wizytowki/nazwa-firmy-ID169/?prjID=3&uid=sdfe5w65673467sdf


??

konto usunięte

Temat: .htaccess i historia


preg_match("/^http:\/\/nazwa\-domeny\.pl\/([a-zA-Z0-9\/-\?\&=]+)$/", $url);


brak kropki w matchu odfiltruje Ci odwołania do plików .css, .js i obrazków.

Następna dyskusja:

pytanie z .htaccess




Wyślij zaproszenie do