W jednym z projektów PHP, które prowadzę, pojawiła się pilna i nagła potrzeba wymuszenia małych liter dla wszystkich adresów URL. Jako, że oczywiście wszystko musi być skończone „na wczoraj”, postanowiłem zrobić to za pomocą pliku .htaccess. Poniżej znajdziesz rozwiązanie, które wykorzystałem.
Aby wykorzystać pewne własności wyrażeń regularnych, musiałem przygotować odpowiednio samego Apache’a – bo z niego korzysta projekt.
Zmiana w pliku httpd.conf
Na samym końcu pliku httpd.conf dodałem następującą linię.
1 | RewriteMap malelitery int:tolower |
Gdzie znaleźć plik httpd.conf? Kliknij w ten link, aby się dowiedzieć.
Potrzebny był jeszcze restart usługi Apache, aby zmiany zaczęły być widoczne.
Zmiana w pliku .htaccess
Jeśli już korzystasz z przepisywania adresów, możesz pominąć pierwszą linię z poniższego listingu. Dwie kolejne natomiast odpowiadają za przekierowanie adresu z kodem odpowiedzi 301, z użyciem wyżej napisanego polecenia. Taki adres dla wyszukiwarki będzie tożsamy ze starym (ściślej mówiąc wyszukiwarka zostanie poinformowana, że stary adres został permanentnie przeniesiony na nowy – w tym przypadku pisany małymi literami).
1 2 3 | RewriteEngine On RewriteCond %{REQUEST_URI} [A-Z] RewriteRule (.*) ${malelitery:$1} [R=301,L] |
Krótko? Ale o czym pisać więcej. Mam nadzieję, że komuś się to jeszcze przyda.
Tagi: .htaccess • Daj Się Poznać 2017 • httpd.conf • małe litery • przekierowanie