Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  12 2098
For øyeblikket driver jeg en side hvor den eneste filen brukerne besøker er index.php, og selve sideinnholdet bestemmes av en variabel i adressen. En typisk adresse på siden kan se slik ut: domene.no/index.php?s=internett. Spørsmålet mitt er om dette er den optimale og «vanlige» metoden å gjøre det på, eller om dette for eksempel hemmer søkemotorindeksering. Noen freaks med peiling innen området?
Nei, det er ikke optimalt av flere grunner.
  1. Du knytter url-er mot en teknologi (php)
  2. De fleste søkemotorer vektlegger url-en veldig mye.

Sjekk ut url-rewrite i apache
Sitat av Kyrios Vis innlegg
For øyeblikket driver jeg en side hvor den eneste filen brukerne besøker er index.php, og selve sideinnholdet bestemmes av en variabel i adressen. En typisk adresse på siden kan se slik ut: domene.no/index.php?s=internett. Spørsmålet mitt er om dette er den optimale og «vanlige» metoden å gjøre det på, eller om dette for eksempel hemmer søkemotorindeksering. Noen freaks med peiling innen området?
Vis hele sitatet...
Det er en dårlig måte å gjøre det på. De aller fleste cms og commerce løsninger har det som kalles friendly url, enten en default funksjon eller som en plug-in modul.

Søkemotorene vektlegger url men like viktig er det å ha logiske url'er som sier noe om hva en ser og hvor på siten en er.

Feks: belysning.me/led/leselys/vegghengt/balalaika
Dette er en url som er mulig å huske, den er mulig å forstå og en skjønner både strukturen på siden og den er tryggere enn om den var slik:
belysning.me/posts.aspx?id=123

Når det kommer til sidestruktur er det mer enn url som er viktig.
Tenk på struktur når du setter opp css for siten. Tenk at det viktigste skal komme først.
Du kan ha feks #"maincontent" over menyer, left og right pane etc. Kort og godt semantikk.

Med html 5 kommer en ny tag <main> men om den er vektlagt hos søkemotorene ennå det tror jeg nok ikke.

<main> vil uansett gjøre det lettere å trekke frem essensen på siden og således utheve det for søkemotorene.
Sikkerhet/Utvikling
CodeBarbarian's Avatar
Jeg vil anbefale og se denne videoen. Mye av problemene jeg hadde da jeg først startet med web-utvikling kunne ha løst seg, hvis den videoen fantes for et på år tilbake.

Det kommer også og lette på en del problemer du kommer til og ha underveis(Inkludert hvordan URL'en ser ut).
Sist endret av CodeBarbarian; 27. desember 2012 kl. 10:43.
For å illustrere hva jeg mente er det litt kode her. Dette bare kopierte jeg fra maxdesign og det veldig godt eksempel på hvordan mange folk tenker når de designer sider.

Klikk her for å se hvordan dette ser ut i din browser. Dette er bare en helt basic site og en kan enkelt bruke slike som maler å bygge videre på.

Om du ser på siden i browseren din så ser kanskje ting helt ok ut?
Endel mener at en kan tjene litt på å stokke om på plasseringen av markupen. Om du ser nedenfor i koden så ser du at har en div <div id="navigation"> - den kommer ovenfor en viktigere div som heter <div id="content">. På alle undersider bortsett fra indeks bør <div id="content"> komme så høyt oppe i markup som mulig - altså nærmest mulig toppen. For søkemotorene leser markup top to bottom.

Dermed har du litt ulik markup på indeks siden og de resterende sidene. Men det er null stress.

Det er svært vanskelig å si 100% sikkert at det er noe å tjene på å gjøre slikt da man ikke vet helt sikkert hva som vektlegges mest i de forskjellige søkemotorene men logisk sett siden de leser fra toppen og ned høres det plausibelt ut. Det er jo også mange som sier dette har hjulpet dem.

Html markup:

Kode

<div id="container">
	<div id="header">
		<h1>
			Site name
		</h1>
	</div>
	<div id="navigation">
		<ul>
			<li><a href="#">Home</a></li>
			<li><a href="#">About</a></li>
			<li><a href="#">Services</a></li>
			<li><a href="#">Contact us</a></li>
		</ul>
	</div>
	<div id="content-container1">
		<div id="content-container2">
			<div id="section-navigation">
				<ul>
					<li><a href="#">Section page 1</a></li>
					<li><a href="#">Section page 2</a></li>
					<li><a href="#">Section page 3</a></li>
					<li><a href="#">Section page 4</a></li>
				</ul>
			</div>
			<div id="content">
				<h2>
					Page heading
				</h2>
				<p>
					Lorem ipsum dolor sit amet consect etuer adipi scing elit sed diam nonummy nibh euismod tinunt ut laoreet dolore magna aliquam erat volut. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. 
				</p>
				<p>
					Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. 
				</p>
				<p>
					Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. 
				</p>
			</div>
			<div id="aside">
				<h3>
					Aside heading
				</h3>
				<p>
					Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan.
				</p>
			</div>
			<div id="footer">
				Copyright © Site name, 20XX
			</div>
		</div>
	</div>
</div>
Css:

Kode

#container
{
	margin: 0 auto;
	width: 100%;
	background: #fff;
}

#header
{
	background: #ccc;
	padding: 20px;
}

#header h1 { margin: 0; }

#navigation
{
	float: left;
	width: 100%;
	background: #333;
}

#navigation ul
{
	margin: 0;
	padding: 0;
}

#navigation ul li
{
	list-style-type: none;
	display: inline;
}

#navigation li a
{
	display: block;
	float: left;
	padding: 5px 10px;
	color: #fff;
	text-decoration: none;
	border-right: 1px solid #fff;
}

#navigation li a:hover { background: #383; }

#content-container1
{
	float: left;
	width: 100%;
	background: #fff url(/wp-content/uploads/layout-three-liquid-background1.gif) repeat-y 20% 0;
}

#content-container2
{
	float: left;
	width: 100%;
	background: url(/wp-content/uploads/layout-three-liquid-background2.gif) repeat-y 80% 0;
}

#section-navigation
{
	float: left;
	width: 16%;
	padding: 20px 0;
	margin: 0 2%;
	display: inline;
}

#section-navigation ul
{
	margin: 0;
	padding: 0;
}

#section-navigation ul li
{
	margin: 0 0 1em;
	padding: 0;
	list-style-type: none;
}

#content
{
	float: left;
	width: 56%;
	padding: 20px 0;
	margin: 0 0 0 2%;
}

#content h2 { margin: 0; }

#aside
{
	float: right;
	width: 16%;
	padding: 20px 0;
	margin: 0 2% 0 0;
	display: inline;
}

#aside h3 { margin: 0; }

#footer
{
	clear: both;
	background: #ccc;
	text-align: right;
	padding: 20px;
	height: 1%;
}
Sist endret av random67489; 28. desember 2012 kl. 05:22.
z0p
uʍop ǝpısdn
z0p's Avatar
random: dette er vel mer dokumentstruktur enn sidestruktur i den kontekst det her er snakk om
se forøvrig min tråd om emnet her

Hvordan man strukturer et system er gjerne litt induviduelt, men i stort sett vil utviklingsteknikkker, rammeverk brukt av systemet, og serverkonfigurasjoner bestemme strukturen.

Jeg er forøvrig enig med de fleste her angående SEO og mod rewrite, men det er ikke nødvendigvis viktig i denne sammenhengen. pene AJAX-requests o.l. er bortkastet, og er ofte den største delen av klient-server kommunikasjon i en webapp.

En pen kort url må på et punkt referere til en lokasjon hos hosten. For å gjøre det enklere åskifte til andre fil/mappastrukturer, og teknologier i fremtiden, bør man unngå å så lenge som mulig å refere til dette i løpet av http-request.

f.eks pen.no/index.php?id=1 knyter php opp som teknologi for denne query, og man binder standarddokumentet til index.php for systemet.
ved f.eks kun pen.no/?id=1 kan man overlate dette til konf. av webserveren, og unngår fallgruver i systemet

En dispatcher i bunn av systemet kan forenkle utviklingen av et komplekst system ved å åpne for flexible utviklingsteknikker slipper å henvise til spesifikke lokasjoner utenfor systemet, og det blir enklere å omstrukturere og flytte mellom platformer.

Målet bør alltid være at ihvertfall indekserte urler og APIer alltid peker til korrekt innhold, og i vørste fall kunne sende en http-respons som forteller ny lokasjon. Jeg bruker gjerne også pen.no/styling type-of-style rewrites for å enkelt kunne referere til standard stilark fra ulike moduler uten å bekymre meg for hvor den faktiske filen befinner seg, og hva den er kalt. Man kan f.eks bruke en konf. fil for å knytte gitte modul-referanser opp mot lokasjonen som skal behandle requesten. Da kan man enkelt tilpasse et system kun ved å redigfere denne filen.

Selve katalogiseringen av kildefiler og datafiler brukt av systemet er ikke veldig vesentlig. bestemmes gjerne av utviklingsverktøy eller bare sunn fornuft. Skill de ulike teknologiene, del presentasjon, logikk, og data på en grei måte, og gi gode og beskrivende filnavn.
php navngives f.eks ofte ved minklasse.class.inc eller lignende for å kunne bruke en utviklingsteknikk for å unngå å overlate til programmeren å passe på at alle requirements er tilgjengelige.
Er ikke uenig z0p det er bare at om den å ha content up top kan gi fordeler frem til vi alle bruker html 5 så hvorfor ikke?
Å stokke litt om på divene er en lav pris å betale om det faktisk blir gevinst på google. SEmantikken er vi enige om.
z0p
uʍop ǝpısdn
z0p's Avatar
Det blir jo litt skolebok vs. praksis. Jeg mener skolebok til man mestrer faget dithen at man selv kan argumentere for/mot optmaliseringer og "hacks" som strider mot ymse prinsipper, og kan utarbeide et godt kompromiss. Og optimaliseringer bør skje i etterkant av utviklingen, og ikke en del av oppbygningen.
Da er vi jo egentlig helt enige.
Forresten en veldig god innføring du hadde i linken. OP bør absolutt lese den og forstå viktigheten.
Det koster innsats å ligge på topp hos google.
▼ ... over en uke senere ... ▼
Jeg har nå gått over til en struktur hvor sideadressene mine typisk kan se slik ut: www.domene.no/kategori/side.php. Hver side bygger nå på et fast «skall» (samme bakgrunn, meny på siden og lignende), som nå er fordelt mellom to filer, header.php og footer.php. Disse inkluderes i topp og bunn av hver enkelt artikkel, noe som blir problematisk ettersom bilder og script i headeren og footeren nå ligger relativt til hver artikkel, og det ikke er gitt at hver artikkel ligger i samme mappenivå. For eksempel kan en side ha beliggenheten kategori/underkategori/side.php, og i et slik tilfelle nytter det ikke å refere til href="../stilsett.css", da stilsettet ikke ligger i kategori, men i mappen over. Et alternativ kunne vært å bruke absoluttlenker til stilsett og bilder, men dette umuliggjør bruken av den lokale Wamp-serveren jeg bruker for å prøvekjøre funksjoner før de lastes opp.

Dette ble kanskje en smule rotete, men jeg er alså stadig ute etter den beste løsningen å strukturere siden min på.
At URI-en viser /kategori/side(.php) betyr ikke at side.php skal/bør ligge i undermappen kategori. Det som er vanlig i et slikt tilfelle er at "kategori" refererer til en kontroller, mens "side" refererer til en metode i klassen. Du kan bruke Rewrite i .htaccess-filen for å gjøre om f. eks example.tld/kategori/side til example.tld/index.php?path=kategori/side, så kan du kjøre en explode('/') på $_GET['path'] i index-filen og inkludere de valgte filene.

Jeg anbefaler deg virkelig å se på et MVC-rammeverk. Da får du samlet filer som hører sammen. Views/html i samme mappe, Controllere (tar i mot requests) sammen og modeller (databasetabeller) sammen. Har ikke noen spesielle rammeverk å anbefale da jeg har gått over til Ruby on Rails, men du vil takke deg selv senere når prosjektet begynner å bli stort.
Sist endret av ma10as; 7. januar 2013 kl. 17:40.
▼ ... noen uker senere ... ▼
Her er en grei guide som viser hvordan du kan få til "pene" urls: http://net.tutsplus.com/tutorials/ot...r-pretty-urls/