Mam sporo problemów, o których chciałbym usłyszeć twoją opinię, więc mam nadzieję, że uda mi się to wystarczająco dobrze wyjaśnić. Powinienem również zauważyć, że jestem początkującym wyposażonym tylko w znajomość HTML i CSS, więc chociaż jestem prawie pewien, że istnieje proste rozwiązanie wykorzystujące potężne PHP, to mi nie pomoże .
Załóżmy, że mam swój osobisty blog na adres example.com/blog.html
i tam są linki do kilku podrzędnych blogach example.com/blog/math.html
, example.com/blog/coding.html
itd. Tak więc mój główny folder zawiera blog.html
i blog
folderu, blog
sam folder zawiera pliki math.html
i coding.html
.
Przede wszystkim dowiedziałem się (od Google Webmasters Tools ), że dla celów SEO i celów estetycznych dobrze jest ujednolicić example.com.com
i example.com/index.html
dodać _rel="canonical"_
atrybut do źródła index.html
. Używając kilku innych sztuczek (takich jak linkowanie do ../
i ./
) pozbyłem się brzydkiego index.html
pojawiania się na moich adresach internetowych.
A teraz zastanawiam się, czy tej sztuczki można użyć nie tylko w folderze głównym, ale w jakimkolwiek folderze? To znaczy, chciałbym przenieść blog.html
do blog
folderu, zmienić go do pola index.html
i dodać rel="canonical"
do unifikacji example.com/blog/index.html
z example.com/blog/
.
Ta sztuczka zmieniłaby adres mojego bloga example.com/blog.html
na example.com/blog/
.
Nie skończony! Mam również problemy z robotem Google indeksującym moje foldery. Więc kiedy piszę site:example.com/
w wyszukiwarce Google, link do mojego folderu example.com/blog/
z surowymi plikami, ikonami itp. Pojawia się wśród innych wyników. Są też inne sposoby, aby to naprawić, ale IMHO zmiana wspomniana powyżej również załatwi sprawę - index.html w folderze blogu uniemożliwiłby użytkownikowi przeglądanie rzeczywistej surowej zawartości tego folderu, pojawiłby się tylko odpowiedni link example.com/blog/
w wyszukiwarce Google i (mam nadzieję, że) _rel="canonical"_
sprawi, że drugi niechciany link example.com/blog/index.html
nie pojawi się w wynikach wyszukiwania.
Więc moje pytania to:
- Czy dobrą praktyką jest posiadanie
index.html
pliku w każdym podfolderze, czy też jest przeznaczony tylko do folderu głównego? - Czy są jakieś wady lub problemy, które mogą wystąpić podczas korzystania z drugiej metody „ indeksowania w każdym folderze ”?
- Który z dwóch sposobów strukturyzacji strona opisanych powyżej, ty preferujesz?
źródło
Odpowiedzi:
Powodem używamy
index.html
lubhome.html
lub derivitives tego, jest fakt, że oprogramowanie serwera WWW Sam rzeczywiście wygląda na to, że i służy. Na przykład:To jest NIEPRAWIDŁOWE: (katalog www)
Będzie to faktycznie służyć jako strona z listą folderów i plików. (Nie to, czego chcesz). Możesz wypróbować tę strukturę, ale także utworzyć plik index.html obok blog.html. Zauważ, że nie będzie wyświetlał blog.html, chyba że określisz
http://www.site.com/blog.html
) Dlategohttp://www.google.com/
wyświetla stronę bez konieczności podawaniahttp://www.google.com/index.html
Jest to WAŻNE:
Będzie to służyć jako
blog.html
plik STRONA GŁÓWNA. (Nie wyświetla wszystkich folderów / plików w tym katalogu)Oprogramowanie serwera WWW ma (w konfiguracji) wyspecjalizowaną listę nazw plików, które będą służyć jako strona główna lub strona główna folderu. (Z mojego doświadczenia wynika , że
index.html
ma pierwszeństwo przed index.php, więc jeśli maszindex.html
iindex.php
w folderze, index.html jest tym, co zobaczy publiczność) Oczywiście, że wszystko to można zmienić, a nawet możesz ustawić,blog.html
aby był rozpoznawany jako "indeks".Adresowanie komentarza:
Można to zrobić, przechodząc
blog.html
całkowicie do/blog/
i zmieniając jego nazwę na index.html.Twoja nowa struktura to:
Powinno to poprawnie służyć
http://www.site.com/blog/
do wyświetlania zawartości twojego blog.html, którego nazwę zmieniliśmy, abyindex.html
oprogramowanie mogło ustawić go jako indeks katalogu/blog/
Teraz możesz również umieszczać
index.html
pliki w katalogu głównym swojej witryny i umieszczać w nich pliki,http://www.site.com/(index.html)
aby uzyskać linki/blog/
i cokolwiek innego.W szczególności odpowiadając na pytania w krótkich wypowiedziach:
Czy dobrą praktyką jest posiadanie pliku index.html w każdym podfolderze, czy też jest przeznaczony tylko do folderu głównego?
Tak, ponieważ uniemożliwia ludziom sprawdzenie, jakie pliki znajdują się w twoich katalogach. Można temu zapobiec za pomocą
.htaccess
pliku zawierającegoOptions -Indexes
Czy są jakieś wady lub problemy, które mogą wystąpić podczas korzystania z drugiej metody „indeksowania w każdym folderze”?
Brak, o którym mogę myśleć.
Który z dwóch opisanych powyżej sposobów strukturyzowania strony internetowej wolisz?
Zwykle mam plik
index.html
lubindex.php
plik w katalogu głównym, podfoldery oparte na kategorii (takie jakforum
lubnews
lublogin
itp.), A następnie jakiś indeks wewnątrz każdego z nich.źródło
Termin techniczny dla index.html to Indeks katalogów dla Apache i Dokument domyślny dla IIS. Inną interesującą dyrektywą Apache jest dyrektywa opcji . Jak wskazano w dokumentacji, kiedy
Options Indexes
jest ustawiony:Gdy konfiguruję witrynę internetową, która nie korzysta z systemu zarządzania treścią, preferuję konfigurację jednej strony z treścią na katalog. Ta strona jest indeksem katalogu (dokument domyślny) dla katalogu. Wszystkie linki w witrynie prowadzą tylko do katalogu i kończą się ukośnikiem (np.
http://example.com/blog/
Zamiasthttp://example.com/blog/index.html
lub./blog/
zamiast./blog/index.html
). Końcowy ukośnik jest ważny, aby uniknąć tego, co jest powszechnie nazywane przekierowaniem grzecznościowym . (Jeśli ukośnik końcowy zostanie pominięty, wszystko nadal jest rozwiązywane poprawnie, ale liczba żądań HTTP i tym samym wzrost przepustowości).Moja podstawowa motywacja dla powyższej metodologii jest dwojaka. Po pierwsze, ułatwia zmianę technologii używanej na stronie. Na przykład mogę zmienić stronę z index.html na index.php bez zerwania linków lub list wyszukiwarek. Po drugie, rozszerzenie pliku strony treści to „szum”; usunięcie rozszerzenia pliku z adresu URL skutkuje krótszymi i, miejmy nadzieję, bardziej czytelnymi adresami URL.
Jeśli chodzi o inne typy plików:
Na serwerze Apache wyłączam
Options Indexes
wyżej wymienione katalogi. Na obu serwerach Apache i IIS nie określam indeksu katalogu (dokument domyślny) dla wyżej wymienionych katalogów. Dlatego żądanie dowolnego z katalogów powoduje błąd HTTP 403.źródło