URL puliti di Poor Man vs. Mod_Rewrite


8

Nella società in cui lavoro, ci stiamo preparando a progettare un nuovo sito Web e non vi è alcun disaccordo su come creare URL puliti. Nell'ultimo anno abbiamo apportato piccoli miglioramenti al nostro sito Web esistente in previsione di una riprogettazione su larga scala, che ha coinvolto gli URL puliti del povero ™.

Esempio:
http://www.example.com/products/widgets/index.php

http://www.example.com/products/sprockets/index.php

Per il nuovo sito, si parla dell'utilizzo di mod_rewrite:

  1. L'utente richiede http://www.example.com/products/widgets/
  2. mod_rewrite li invia a http://www.example.com/index.php?page=products/widgets
  3. index.php li invia alla pagina reale http://www.example.com/products/widgets.php

Non riesco a vedere come tutto questo rigamaroll stia aggiungendo alcun valore. Il dipendente a favore di mod_rewrite afferma che un numero inferiore di directory equivale in qualche modo a una manutenzione più semplice.

Nessuna delle nostre pagine esistenti utilizza variabili nella stringa di query. Tutto il contenuto è negli stessi file stessi. Stiamo programmando di inserire alcuni contenuti nel database, come i comunicati stampa e le prossime fiere a cui parteciperemo, ma la stragrande maggioranza delle pagine utilizzerà PHP solo per includere HTML comuni come intestazione, piè di pagina e navigazione. Sarei sicuramente pronto ad usare mod_rewrite per contenuti dinamici del genere.

C'è qualche grande vantaggio che mi manca che dovremmo usare mod_rewrite per tutto? I Poor Man's Clean URLs ™ sono sufficienti per le parti non di database del nostro sito?


mi sono impegnato così ... troppa seccatura per un url pulito ...

Risposte:


3

Il processo in 3 fasi che hai delineato sopra sembra ridondante e inutile come è stato detto sopra. Se nel passaggio 3 index.php li porta alla pagina "reale", allora perché preoccuparsi di mod_rewrite? Ciò annullerà i vantaggi offerti da mod_rewrite. Vale a dire, un URL intuitivo per i motori di ricerca e una manutenzione del sito più semplice. Se ti fermi al secondo passaggio, beneficerai di mod_rewrite avendo solo una pagina da mantenere, ma può servire un numero praticamente illimitato di pagine ed essere trasparente per l'utente e i motori di ricerca poiché vedono solo l'URL nel passaggio 1.


4

È un mito che "/ nomepagina" o "/pagename.htm" sono migliori per i motori di ricerca di "/pagename.php". Almeno su Google, non c'è assolutamente alcuna base per questo (e presumo anche gli altri). Allo stesso modo, anche "index.php? Page = nomepagina" non deve essere riscritto come "/ nomepagina" - i motori di ricerca sono in grado di comprendere quegli URL senza problemi e Google ha persino registrato che preferisce che gli utenti non riscrivano li inutilmente ( http://googlewebmastercentral.blogspot.com/2008/09/dynamic-urls-vs-static-urls.html ). Pertanto, a condizione che non si creino URL infiniti con parametri URL, gli URL riscritti non sono necessariamente più compatibili con i motori di ricerca rispetto agli URL non riscritti .

Detto questo, gli utenti potrebbero preferire URL belli rispetto a URL brutti / complessi. Se la tua preoccupazione principale è avere dei bei URL nei risultati di ricerca, darei un'occhiata al microformato breadcrumb che Google ora supporta ( http://googlewebmastercentral.blogspot.com/2010/09/rich-snippets-testing-tool- miglioramenti.html ) in quanto spesso possono fornire un'esperienza utente ancora migliore per quanto riguarda gli URL nei risultati di ricerca. Questo non risolverà il problema degli utenti che desiderano collegare URL di bell'aspetto, ma purché i tuoi URL non siano infinitamente complessi (e i tuoi esempi non lo sono), probabilmente non farà una differenza misurabile se li riscrivi per quello caso d'uso. Se non ci sono differenze misurabili, probabilmente non ha senso dedicare tempo alla progettazione e alla manutenzione di tale installazione.


1

Ciò che definisci "URL puliti di Poor Man" sono solo URL puliti implementati attraverso il filesystem. Puoi avere questi tipi di URL usando mod_rewrite, così come puoi avere il secondo tipo di URL senza mod_rewrite.

Gli URL puliti sono esattamente ciò che implica il nome: URL che sono puliti o che sembrano puliti. Tutti e due

http://yoursite/foo/bar

e

http://yoursite/foo/bar.php

sono URL puliti. Il termine "URL puliti" non specifica alcuna implementazione particolare. Puoi implementare URL puliti generando pagine .html memorizzate nella cache ogni volta che il sito viene aggiornato, se lo desideri. mod_rewrite ti consente semplicemente di separare la struttura dell'URL dalla struttura del file senza reindirizzamenti o frame.

Da quello che sembra, non stai attualmente eseguendo un sito basato su database. E anche se tecnicamente potrebbe qualificarsi come sito Web dinamico, probabilmente è più sull'estremità statica dello spettro se usi principalmente PHP solo per includere intestazioni / piè di pagina. Questo va bene per i piccoli siti che raramente necessitano di aggiornamento, ma man mano che il tuo sito diventa più grande, dovrai implementare un vero CMS.

Il punto in cui brilla mod_rewrite è quando inizi a prendere in considerazione la manutenibilità. Invece di avere centinaia di file php per ogni pagina del prodotto (con un sacco di codice ridondante), puoi semplicemente avere un singolo script che gestisce tutte le richieste. Ma se non hai più un mapping uno-a-uno dei file .php effettivi sulle pagine Web visualizzate, dovrai usare qualcosa come mod_rewrite per indirizzare le richieste di pagina in modo intelligente mantenendo l'illusione della struttura di file / directory Là.

Quindi non è la sottodirectory aggiuntiva di cui dovresti preoccuparti. È il fatto che stai creando uno script .php separato per ogni pagina del tuo sito.


1

"Clean URLS" spesso significa nessun file ext; aiuta a nascondere i dettagli di implementazione dal visualizzatore. Il vantaggio è che quando decidi di spostare il tuo sito da PHP a Ruby on Rails, puoi farlo senza cambiare un singolo URL.

Ora, mentre è possibile gestire il tuo sito con ASP.net e avere nomi di file che terminano in .php se vuoi mantenere intatti i tuoi URL, sembra avere più senso farlo in modo tale che il problema non debba mai sorgere .

http://www.example.com/news/2010/10/our-new-url-system/

Può sempre essere un buon URL, anche se si modifica completamente l'architettura sottostante o si passa da file statici a file dinamici ... o viceversa.


0

Mi sembra che avere tutti i tuoi contenuti in un database sarebbe molto più veloce e più facile da mantenere, quindi scavare in un file system di grandi dimensioni ogni volta che devi effettuare aggiornamenti. Come John Mueller ha menzionato sopra, il bel URL non farà una grande differenza nelle tue classifiche, tuttavia, ti consigliamo di utilizzare Mod_Rewrite per mantenere i tuoi URL esistenti e il loro valore. IE se:

example.com/widgets/index.php ha 1.000 link che puntano ad esso e lo cambi ad esempio.com/pages/widgets.php rischi di perdere molto di quel valore (puoi ovviamente reindirizzarlo, ma è discutibile se o no che passerà lo stesso valore)

La mia raccomandazione sarebbe se continui a servire contenuti statici continui ad usare il file system, se lo stai convertendo in contenuto dinamico usa Mod_Rewrite per mantenere intatta la tua struttura URL attuale. Oppure, se non è possibile mantenere la struttura corrente, utilizzare Mod_Rewrite per creare una struttura che sarà stabile per futuri aggiornamenti.


0

Come è stato detto, avere .phpo ?page=non importa davvero. Ciò che conta è se stai facendo qualcosa del genere:

http://www.example.com/index.php?page=13

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.