webForumDet fria alternativet

Lite hjälp med en domänfråga + php

PHP

40 svar · 1 288 visningar · startad av Asa · sida 2 av 3

Frågan, av Asa

Har en sida som jag använder följande länk när man tittar på sin kalender: <http://www.webbkalender.com/?id=1> Vill kunna ha så här: <http://www.webbkalender.com/username> Men vet inte hur man skall göra detta. Någon som har tips hur jag skall göra? Måste man ha något speciellt på servern för detta eller räcker det med phpkodning? Har ju många mappar i rooten. Tänkte mycket på det nämligen...

Läs frågan i sin helhet →
Medlem sedan feb. 20034 441 inlägg
#21

Ser nu att på den ASP sajt där jag använder .htaccess har jag även med "RewriteBase":

[ISAPI_Rewrite]
RewriteEngine on

RewriteBase /
# - regler -

Vet inte om det kanske kan göra någon skillnad.

Medlem sedan dec. 20011 860 inlägg
#22

Ska kolla upp det

http://gruvsjo.se/test/1

index.php som ligger i test/

<?php 
echo (isset($_GET['sid']) ? $_GET['sid'] : "");
if($_GET['sid'] == "1"){
	echo "1";
}
?>

Samma fel. La .htaccess i den mappen

[ISAPI_Rewrite]
RewriteEngine on
RewriteBase test/
RewriteRule ^test/([a-z0-9]+)/$ index.php?sid=$1 [nc]

Jag skall iväg nu en sväng men kommer igen efter kl 13. tack för all hjälp än så länge.

Medlem sedan feb. 20034 441 inlägg
#23

Asa skrev:

index.php som ligger i test/

Nej nej, du ska inte skapa en mapp som heter test. Index.php ska ligga kvar i rooten.

Det är ju det här du har mod_rewrite till, du ska inte skapa mapparna, utan det du skriver i adressfältet "manipuleras"/"förändras"/"tolkas" av .htaccess.

Så, skapa inga extra mappar.

Tänk på det avslutande / som du har i din regel. Eftersom mönstret avslutas med $ så innebär det att den måste matcha EXAKT.

Den adress du angav (gruvsjo.se/test/1) kommer ge "Not found" om regeln är ^test/([a-z0-9]+)/$ eftersom du inte har med något avslutande / i din adress.

Medlem sedan dec. 20011 860 inlägg
#24

Jag tänkte ha en testsida tills jag får igång det. Därgör gjorde jag en mapp med namn /test/

Går det inte alltså? Exakt hur skall jag göra. Jag är lite trögtänkt ibland.. Hahaha

Medlem sedan dec. 20011 860 inlägg
#25

Lägger jag ens upp .htaccess filen på servern kan sidan inte visas. Sidan måste väl kunna visas som stardard?
Direkt via https://www.gruvsjo.se?

Ser ut så här den jag testade lägga upp i rooten

[ISAPI_Rewrite]
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z0-9]+)/$ index.php?sid=$1 [nc]
Medlem sedan dec. 20011 860 inlägg
#26

Är det helt fel eller??

Medlem sedan dec. 19995 874 inlägg
#27

Asa skrev:

Spelar det någon roll om sidan ligger på en Win 2008 server med IIS 7.0?
Har https://www.axbyte.se där sidan ligger.

Ska detta funka på en gång?

Eftersom du använder iis7 så rekommenderar jag att du tittar på dessa filmerna.
http://www.youtube.com/watch?v=guzJWqNJ3DA
http://learn.iis.net/page.aspx/506/url-rewrite-module---video-walkthrough/

samt läser på https://www.iis.net för mer information om url rewrite i iis7, exempelvis http://learn.iis.net/page.aspx/465/url-rewrite-module-configuration-reference/

Medlem sedan dec. 20011 860 inlägg
#28

Jag skall ta en rejäl koll på de sidorna som du postat och hoppas jag fattar mer efter det.

Medlem sedan dec. 19995 874 inlägg
#29

Asa skrev:

Jag skall ta en rejäl koll på de sidorna som du postat och hoppas jag fattar mer efter det.

Det går att konfigurera url rewriting via konfigurationsfil (du behöver alltså inte använda det grafiska gränssnittet som filmerna visar), men exakt var du lägger den och hur du laddar upp den vet jag inte eftersom jag inte vet hur ditt hostingbolag har konfigurerat sitt system. Kolla gärna med deras support.

Medlem sedan dec. 20011 860 inlägg
#30

Om servern är Linux då hur gör man då med detta? Har en sida som ligger hos surftown på en Linux server.

Medlem sedan feb. 20034 441 inlägg
#31

Asa skrev:

Om servern är Linux då hur gör man då med detta? Har en sida som ligger hos surftown på en Linux server.

..då fungerar mitt förslag (se mitt första inlägg i den här tråden) alldeles utmärkt.

Medlem sedan dec. 20011 860 inlägg
#32

Felet blir:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Medlem sedan feb. 20034 441 inlägg
#33

Asa skrev:

Men det blir ju att sidan inte visas. Funkar inte alls :(

Men då gör du något annat fel... koden är direkt kopierad från en av mina .htaccess filer som ligger på en live sida (http://www.tabysim.se/sektion/barnsim/simskola/3-26/grupp/36-136/) där URL'en egentligen är http://www.tabysim.se/school.php?school_section=&school_type=&section_id=3&type_id=26&level_id=35&group_id=136.

Om du klickar på den senare, alltså den "som översätts" ger den internal server error, medan "den snygga" funkar som den ska.

Medlem sedan dec. 20011 860 inlägg
#34

Jag kan inte ens titta på indexsidan via ex https://www.sidan.se utan får det felet du.

Medlem sedan dec. 20011 860 inlägg
#35

Måste .htaccess filen sparas i nåt speciellt teckenformat? UTF-8 eller liknande? Påverkar sådant detta? Nån skrev nåt om det här:
http://eforum.idg.se/viewmsg.asp?entriesid=1080455

Medlem sedan dec. 20011 860 inlägg
#36

Fick till det till slut.. Hade ju fortfarande med [ISAPI_Rewrite] så jag tog bort den och så funkade det :)

Medlem sedan feb. 20034 441 inlägg
#37

Asa skrev:

Fick till det till slut.. Hade ju fortfarande med [ISAPI_Rewrite] så jag tog bort den och så funkade det :)

Fint! ..och glöm inte att markera tråden som löst :)

Sen kanske någon moderator kan flytta den här tråden till Webserverformet, eftersom det inte alls rör PHP.

Medlem sedan dec. 20011 860 inlägg
#38

Men lägger ni in ett extra fält i databasen som ni ger ett eget namn eller gör ni om ex menyns namn eller rubrik till det seo vänliga urlén?
Kan ni skriva lite mer info om det tack.

Och hur ser Regeln ut om man har en länk som ser ut så här ex:
https://www.sidan.se/index.php?sid=17&aID=25

Medlem sedan feb. 20034 441 inlägg
#39

Det "snygga" i URL'n är sidans namn, låt säga att min tabell innehåller texter och ser ut såhär:

id	parent	name		text
1	2	Välkommen	blabla bla blabla
2	3	Kontakt		blabla bla blabla
3	3	Om oss		blabla bla blabla

Då tar jag "name" och kör genom ett regexp, så att "ogiltiga" tecken ersätts:

function fixname($username = "", $tolower = true){
	$match    = array('Å', 'Ä', 'Ö', 'å', 'ä', 'ö', ' ');
	$replace  = array('a', 'a', 'o', 'a', 'a', 'o', '_');

	$username = str_replace($match, $replace, ($tolower ? strtolower($username) : $username));
	$username = ereg_replace('[^a-z0-9_]', '', $username); 
	return $username;
}

Jag vill att URL'en ska se ut såhär:

http://www.doman.se/valkommen/1-1/

1-1 ovan är id-parent. anledningen är att om jag bara kör med "/valkommen/" och någon lägger upp en text med samma namn, finns det två möjliga texter att hämta från databasen.

I ditt fall skulle jag skriva regeln såhär:

RewriteRule ^sida/([0-9]+)/([0-9]+)/$ index.php?sid=$1&aID=$2 [nc]

Då kommer du åt sidan med:
https://www.sidan.se/sida/17/25/

Kom ihåg att om du vill slänga in [namn] på sidan, måste regeln se ut såhär:

RewriteRule ^([0-9a-z]+)/([0-9]+)/([0-9]+)/$ index.php?sid=$2&aID=$3 [nc]

Det första ([0-9a-z]+) behöver du inte använda till något, förutom att visa namnet i URLen.

Medlem sedan dec. 20011 860 inlägg
#40

Supertack Micke :)

428 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
293 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
291 ms — ändringar (db)