Chciałbym przepisać adresy URL (dlaczego? Zobacz to pytanie ), aby zamiast użytkowników zobaczyć adresy takie jak
labouseur.com/course-compilers.html
zamiast tego mogą po prostu zobaczyć i używać
labouseur.com/course-compilers
(Jeszcze lepiej, może powinienem to zrestrukturyzować, aby były to kursy / kompilatory)
Korzystam z opartej na Linuksie wspólnej usługi hostingu dla mojej witryny, więc nie mam kontroli administracyjnej nad serwerem, ale mam kontrolę nad .htaccess. Referencje, które przeczytałem w Internecie, wydawały mi się mniej niż jasne, dlatego szukam tu trochę jasności i porady.
url-rewriting
htaccess
Alan
źródło
źródło
Odpowiedzi:
Możesz faktycznie usunąć plik .html z plików na serwerze i ustawić ustawienia w htaccess, aby były one podawane jako pliki html, ale prawdopodobnie nie tego szukasz.
Zrób to :
źródło
Najpierw upewnij się, że apache ma moduł i że jest dozwolony w plikach .htacces, a następnie dodaj:
Twój przykład wymagałby
Dla struktury katalogów jednopoziomowych i
Dla struktury wielopoziomowej.
Ale bądź ostrożny
Jeśli masz strukturę
Reguły przepisywania w dziecku
.htaccess
plików będzie w stosunku do swojego folderu nadrzędnego i można dostać w niektórych kłopotliwych sytuacjach pętlowych przepisać. Upewnij się, że używasz,RewriteCond
aby zatrzymać je, jeśli możesz!źródło
Oprócz powyższych odpowiedzi można użyć
([\w-]+)
Pozwala na litery, cyfry z łącznikiem (-).(.*)
przepisze każde żądanie niezależnie, co może impotentować inne poniższe reguły powodujące wewnętrzny błąd serwera podczas uzyskiwania dostępu.źródło
RewriteRule
wzorzec stanowi ulepszenie w stosunku do przyjętej odpowiedzi dla konkretnego przykładu podanego w pytaniu, jednak nie będzie pasował do bardziej ogólnego przypadku, gdy występuje więcej niż jeden segment ścieżki, np./path/to/course-compilers
. DołączL
flagę, aby zmniejszyć wpływ na następujące reguły. Chociaż(.*)
wzorzec jest niepotrzebnie ogólny, jest mało prawdopodobne, aby powodował poważne problemy z powodu warunku, że plik istnieje.Aby tego dokonać, nie musisz używać pliku .htaccess. Po prostu uporządkuj swoje pliki w katalogach i zamiast używać „labouseur.com/course-compilers.html”, po prostu nazwij plik index.html i umieść go w katalogu o nazwie „kompilatory kursów”. Następnie, gdy wskażesz ten katalog, indeks jest domyślnie obsługiwany, ale nie będzie wyświetlany w adresie URL. Możesz więc napisać swoje linki jako „labourseur.com/course-compilers” i wszystko będzie dobrze.
Nie wymaga .htaccess.
źródło