Kilka spraw związanych z przygotowywaniem serwisu do wrzucenia do sieci

0

Cześć
Chciałbym zadać tu kilka pytań związanych z przygotowywaniem serwisu(ów) do wrzucenia do sieci.

  1. RewriteRule w mod_rewrite Apache
    Po ustaleniu zasady przepisywania można dodać flagi, np. [R=301,L].
    Jeżeli nie doda się flagi R (Redirect), to dojdzie do wewnętrznego przepisania adresu i odpowiedzi "jak gdyby nigdy nic, tak po prostu"
    Natomiast ustawienie tej flagi sprawi, że dojdzie do jawnego przekierowania i w odpowiedzi w nagłówku pojawi się wpis w stylu Location: nowy_adres, a w ciele odpowiedzi będzie dokument. Oczywiście w zależności od przekierowania 301, a 302, może być jeszcze wpis o stałym przeniesieniu, co będzie domyślnie cache'owane w wielu przeglądarkach.
    Czyli: RewriteRule powinno być stosowane z flagą R, wtedy gdy chcemy stale przekierować kogoś i sprawić, że przeglądarka odnotuje nowy adres w adressbar'ze (np. przekierować z www.adres.com na adres.com). Natomiast bez tej flagi wtedy, gdy chcemy stworzyć przyjazne URL'e, i pozostawić adres w adressbar'ze i sprawić, że robot przeglądarek internetowych nie odnotuje tego, iż faktyczny adres jest inny. Tak?

  2. Architektura dla RewriteRule
    Jeżeli tworzę stronę z panelem administratora, który będzie dodawał automatycznie kolejne podstrony, a całość kodowana jest w UTF-8, to czy następujące rozwiązanie byłoby uznane za całkiem ok, czy jest dla tego jakiś nawet dedykowany zamiennik:
    Administrator dodaje stronę, o załóżmy tytule 'Zażółć gęślą jaźń'. Wtedy w bazie danych odnotowuję dodanie strony o takiej nazwie. W kodzie PHP ucinam akcenty i robię z tego czyste ASCII, a spacje zamieniam na myślniki, (tutaj 'Zazolc-gesla-jazn'). Taki wpis dodaję jako RewriteRule (bez flagi R ;) ). Następnie gdzieś w tablicy z podstronami serwisu w kolumnie, np. friendlyURL dodaję 'Zazolc-gesla-jasn' z powyższej zmiany. Gdy kiedykolwiek serwis odwołuje się do tej podstrony korzysta z friendlyURL zamiast z bezpośredniego adresu, np. 'Zażółć gęślą jaźń'.

    Dodatkowo: Czy raczej powinno zmieniać się wszystkie znaki na małe litery? Czy raczej nie powinno się brać innych znaków niż [a-z0-9./\_]?
    EDIT: Jeden globalny RewriteRule dla friendlyURL RewriteRule ^(.*)$ index.php?path=$1 [L] w połączeniu z powyższym (poza przekreśleniem), czy to jest 'optymalne rozwiązanie', czy może jest jakiś dedykowany zamiennik, dla choćby przechowywania friendlyURL'i?
    A parsowanie dalszych argumentów? W PHP, czy bawić się wyrażeniem regularnym w .htaccess?

  3. Symulowanie drzewa dokumentów
    Czy gdy z RewriteRule będę symulował drzewo dokumentów, np. podstrony/artykuly/rewriterule-wprowadzenie/, a obsługiwał to jednym plikiem view.php?id=x, to czy jest to całkiem ok, czy raczej powinno się to robić inaczej? Czy jest jakiś sensowny sposób, dla osoby z zewnątrz (w tym też robota), na sprawdzenie, że struktura jest inna (oczywiście odpowiednie przekierowania zewnętrzne/wewnętrzne uzupełniające też będą)?
    Co za tym idzie, style, js, grafiki i inne embed'y oraz linki muszą mieć ścieżkę zaczynającą się od /, co sugeruje główny katalog publiczny serwera? Czy to też jest uważane za ok i czy jest SEO-friendly?

  4. Jakie znaczenie ma w 2015/2016 robots.txt i sitemap.xml? Wiele źródeł o tym jest sprzed jakichś 5+ lat.

Dziękuję za odpowiedzi, byłoby miło uzyskać konkretne potwierdzenie.

1
  1. tak
  2. bez sensu, generalnie większość rewritów dzisiaj wygląda tak: RewriteRule ^(.*)$ index.php?args=$1 [L,QSA] - a parsowanie adresu odbywa się w kodzie strony. dynamiczne edytowanie pliku .htaccess nie brzmi na rozsądne wyjście, bo wtedy z pliku tekstowego robisz bazę danych - a to często nie kończy się dobrze.

w skrócie:
załóżmy, że adresem będzie news/Zazolc-gesla-jazn
w php (czy co tam używasz) dzielisz parametr z GET args na kawałki separatorem "/", potem sobie analizujesz fragmenty i widzisz, że to jest news i jaki jest jego link. jak link masz w bazie to wyświetlasz artykuł, jak nie masz to wyświetlasz stronę 404

poza tym dziś każda przeglądarka obsługuje url w unikodzie, nie wiem czy jest sens robić URL-e składające się tylko ze znaków a-z. http://sjp.pl/ą , https://pl.wikipedia.org/wiki/Ą czy nawet http://с.новым.годом.рф/ (cała domena w "krzakach")

  1. w sumie drugi punkt Ci na to odpowiada. tak, wszystko jest ok. Zawartość (obrazy artykułów itd, nie layout) możesz dodatkowo puszczać przez inną domenę - przeglądarki limitują ilość jednoczesnych zapytań per domena, więc strona szybciej będzie działać jeżeli HTML i elementy layoutu (fonty, logo, obrazki layoutu, jeżeli są) będzie się wczytywał z jednej domeny, a content z drugiej.

  2. robots.txt pozwala zablokować indeksowanie strony w Google, sitemap.xml ułatwia indeksowanie robotom = treść jest szybciej indeksowana

1

Znaczenie robots/sitemap jest identyczne jak kiedyś. Dziwne, żeby nagle miało to służyć do czegoś innego. Nieszczególnie zastąpisz to czymś innym, więc znaczenie zostaje identyczne.

A odnośnie Unicodu w URL - widziałeś, żeby wikipedia się słabo indeksowała? :p No to wyciągnij wnioski :p

0

No dobra, ale Wikipedia to już ma swoje pozycjonowanie w wyszukiwarkach :D Przed chwilą popatrzyłem na serwisy technologiczne i ucinają akcenty ;) O, 4p też ucina dla poszczególnych wątków :D To po co właściwie takie dodatkowe ucinanie?

Jak by miało wyglądać puszczanie tego przez inną domenę? Robię takie CDN na potrzeby jednego serwisu? Dlaczego pobranie kilku obrazków z innej domeny ma być szybsze? Content z innej domeny a HTML z innej? Nie chodzi o to, żeby content był zasysany z AJAX'a, czy jakkolwiek inaczej, tylko poprzez HTML miałeś na myśli te embed'y, skrypty itd?

Jeszcze jedno, załóżmy, że index.php decyduje co wyświetlić na podstawie args, przy wyżej podanym regex'ie jeżeli mam dajmy na to zazolc-gesla-jazn?var=5&var2=10, to index.php otrzyma całość jak, gdyby args=zazolc-gesla-jazn?var=5%26var2=10, jak sparsować var i var2 w kodzie PHP? Samemu pisać funkcje jakąś, czy jest już coś takiego gotowego do użycia?

1

Zazwyczaj slugifikowanie (od slugify od slug czyli link z powycinanymi znakami specjalnymi) jest następstwem przestarzałego kodu używanego do dziś i ew. brakiem chęci aktualizacji, żeby nie trzeba było robić miliona redirectów ze starych linków na nowe itd.

Nikt nie aktualizuje wszystkiego non-stop byleby tylko podążać za bieżącymi trendami/możliwościami.

HTML, js, css, logo itd wczytuj z glownadomena.pl, a obrazki dodawane do artykułów i inne takie z cdn.glownadomena.pl (jeszcze lepiej cdn-glownadomena.pl, żeby to nie była subdomena). Dlaczego? Pisałem. Przeglądarki limitują ilość jednoczesnych zapytań do jednej domeny. W trakcie gdy pobiera się logo, zestaw skryptów i cssów, fonty i obrazki składające się na layout - razem masz np. 8 zapytań - i przeglądarka czeka aż skończy się je pobierać, żeby pobrać kolejne 8 plików z obrazkami do newsów. Dziś ten limit wynosi domyślnie chyba 20, ale i tak "ładniej" jest jak to rozdzielisz, a każde 100 milisekund ładowania mniej zostanie wynagrodzone przez Google (które podnosi wynik szybko ładujących się stron).

Flaga QSA oznacza query string append. Dla adresu:
domena.pl/news/zazolc-gesla-jazn?var=5&var2=10
otworzony zostanie adres:
domena.pl/index.php?args=news/zazolc-gesla-jazn&var=5&var2=10

Czyli z automatu masz obsługę podawania dodatkowych parametrów

1 użytkowników online, w tym zalogowanych: 0, gości: 1