Themen
 
Individuelles Webdesign
 
01.03.2007 15:56

Saubere URLs ohne mod_rewrite

Kategorie: PHP, Tutorial
Für ein PHP-Projekt habe ich einige Zeit gerätselt wie ich am besten dynamischen Content dynamisch präsentieren, aber gleichzeitig so "hässliche" URL-Parameter-Würste vermeiden kann. Zuerst wollte ich mod_rewrite verwenden, aber es gibt eine einfachere Lösung.

Weder Menschen noch Suchmaschinen mögen "hässliche" URLs mit Parameter-Würsten. Menschen tun sich schwer sich die URL zu merken und Suchmaschinen sind bei der Indizierung ziemlich zurückhaltend.

Der meist gewählte Lösungsansatz

Bei diesem Problem ist der meist gewählte Lösungsansatz die Verwendung von mod_rewrite. Wenn das Modul aktiviert ist, lassen sich damit Requests umleiten ohne dass der Benutzer etwas davon bemerkt.

Beispielsweise kann der Request <kbd>http://www.meinedomain.com/artikel/0815</kbd> intern umgelegt werden auf <kbd>http://www.meinedomain.com/index.php?artikel=0815</kbd><kbd></kbd>

Dem Benutzer bleibt dieser Vorgang verborgen.Vermutlich wäre ich bei mod_rewrite geblieben hätte es bei dem Hoster nicht Probleme gemacht. Am lokalen Test-Server lief alles einwandfrei, aber nicht beim Provider.

Alternativlösung

Zu URL-Rewriting gibt es allerdings eine Alternative. Auf den meisten Servern befüllt PHP die globale Variable $_SERVER['PATH_INFO'].

Werden in der URL nach dem Script nicht mit Fragezeichen abgetrennte Parameter übergeben, sondern ein "Pfad", befüllt PHP die Variable mit dieser Information.

Beispielsweise wäre in dem Script "meinscript.php" die Variable $_SERVER['PATH_INFO'] mit "/artikel/0185" befüllt wenn das Script mit <kbd>http://www.meinedomain.com/meinscript.php/artikel/0815/</kbd> aufgerufen wird. Schaut doch schon viel schöner aus als <kbd>http://www.meinedomain.com/meinscript.php?artikel=0815</kbd>, oder?

Das Script muss dann nur noch die PATH_INFO nehmen, und entsprechend parsen. Ich verwende dazu einfach einfach explode.

PHP:$pathsegments = explode('/', $_SERVER['PATH_INFO']);

teilt die elemente des Pfades in das Array auf, in dem Beispiel also

[0] => 'artikel'
[1] => '0815'

Der virtuelle Pfad lässt sich so recht einfach verarbeiten.

Eines ist allerdings noch nicht schön in dem Beispiel oben: Nämlich dass die Extension ".php" mit in der URL steht.

<kbd>http://www.meinedomain.com/meinscript/artikel/0815/</kbd>

wäre schöner.

Auch das ist recht einfach. Jetzt geht's aber mehr um den Indianer als um PHP.

Ob der Aufruf von Scripts ohne Extension zulässig ist hängt von der Apache-Konfiguration ab. Dazu ist Multi-View bzw. ForceType zuständig.

Hat der Apache multi-view eingeschaltet, hat sich das Problem schon von selbst gelöst. Wird keine Extension angegeben verhandelt der Browser dann mit dem Apache welche "Version" der Datei er will. Da in unserem Fall nur ein File mit dem Namen existiert, und zwar als PHP-File wird er das nehmen. Ob Multi-View eingeschaltet ist lässt sich einfach feststellen: Einfach das Script ohne Extension aufrufen. Wird es ausgeführt, ist alles erledigt.

Wenn nicht, kommt etwas Konfiguraitonsarbeit. Entweder Multi-View wird eingeschaltet, oder es kommt ein kleines Rewrite zum Einsatz:

Diese kleine mod_rewrite regel ist nur notwendig, wenn der Apache Multi-View nicht konfiguriert hat:

In der .htaccess sind dann folgende Zeilen einzutagen:

RewriteEngine onRewriteBase /RewriteRule ^meinscript$ meinscript.php [QSA,L]
RewriteRule ^meinscript/(.*)$ meinscript.php/$1 [QSA,L]

Diese Zeilen veranlassen den Apache einen Aufruf von "meinscript" ohne Angabe von Extension intern auf meinscript.php umzulegen. Die erste RewriteRule übernimmt Aufrufe ohne nachfolgendem Pfad oder URL, die zweite mit Parametern.



Kommentare


Kommentar schreiben...


Anzeige: 1 - 36 von 36.
 
Saturday, 19. 01 19 03:00
ntgduend ntgduendKJ
aus http://viagragenerics.com/ ne4nhlhbetl@gmx.co.uk    Website   

[url=http://viagragenerics.com/]mexico viagra generic[/url] cheap viagra uk buy cheap generic viagra

 
Friday, 18. 01 19 23:43
bssIsove bssIsoveYF
aus http://usaerectionrx.com/ ge2w3brggalfi@gmx.us    Website   

[url=http://usaerectionrx.com/]is generic viagra safe[/url] viagra alternatives does viagra have a generic brand

 
Friday, 18. 01 19 22:52
nnqginny nnqginnyEA
aus http://emtpartsstore.com/ rhwebv@gmx.co.uk    Website   

[url=http://emtpartsstore.com/]buy viagra online usa[/url] lowest price viagra generic for viagra

 
Thursday, 17. 01 19 19:04
bdbQuaks bdbQuaksQD
aus http://www.authenticknicksstore.com/ awbutipof@gmx.co.uk    Website   

[url=http://www.authenticknicksstore.com/]cialis from india online pharmacy[/url] cialis for sale daily cialis online

 
Wednesday, 16. 01 19 18:43
befseddy befseddyOJ
aus http://www.forumdemulheres.com/ saheweghasl@gmx.com    Website   

[url=http://www.forumdemulheres.com/]comprar cialis 5 mg online[/url] natural alternatives to viagra how to order cialis online safely

 
Tuesday, 15. 01 19 14:27
nwwginny nwwginnyVP
aus http://canadiansapharmacyvgy.com/ h4hrewufgrwemiqv@gmx.co.uk    Website   

[url=http://canadiansapharmacyvgy.com/]viagra online generic[/url] does generic viagra work buy viagra online cheap

 
Tuesday, 15. 01 19 03:47
ddbIsove ddbIsoveHR
aus https://www.niqabsquad.com/ gegsswegrwrg2g3rggalfi@gmx.us    Website   

[url=https://www.niqabsquad.com/]when did viagra go generic[/url] viagra australia is there a generic pill for viagra

 
Sunday, 13. 01 19 06:53
bfgseddy bfgseddyZT
aus http://viagravkash.com/ sahervsdfgah5dhasl@gmx.com    Website   

[url=http://viagravkash.com/]viagra online cheap[/url] cheap generic viagra generic viagra online

 
Sunday, 13. 01 19 05:55
gsfScOsy gsfScOsyBZ
aus https://aluixnetwork.com/ hrst5zsasvbpkk@gmx.co.uk    Website   

does generic viagra work cheap viagra online canadian pharmacy http://meolycat.com/bbs/home.php?mod=space&uid=841265&do=profile&from=space
is there generic viagra viagra online canadian pharmacy http://withinfp.sakura.ne.jp/eso/index.php/13769216-get-photo-perfect-hair-with-these-simple-ideas-information-numb/0
generic name for viagra generic for viagra http://text.hlt.nectec.or.th/smwiki/index.php/Use_These_Tips_And_Methods_To_Improve_Your_Exercise..._Information_Number_6_Of_539
generic viagra usa online pharmacy viagra http://www.liujingwen.com/blog/member.asp?action=view&memName=FerminVetter087
generic viagra online buy viagra online usa http://www.rockpop60.it/pinasiob/userinfo.php?uid=4581759
when does viagra go generic best place to buy generic viagra online http://zwxx.jdjy.cn/BOKE/41/member.asp?action=view&memName=VanitaS354352763112
generic viagra online pharmacy buy real viagra online http://minpress.ru/wp-content/plugins/wp-js-external-link-info/redirect.php?url=http://cheapnowaaaa.com/
canadian generic viagra viagra online prescription free http://www.liujingwen.com/blog/member.asp?action=view&memName=WolfgangQuiros3
cheap viagra online canadian pharmacy viagra generic name http://2xlt.com/space-uid-443719.html
buy viagra online generic viagra online pharmacy http://www.shanghai-hm712.com/home.php?mod=space&uid=227836&do=profile&from=space
generic viagra online buying viagra online http://games4king.com/profile/eulafinnega
online generic viagra when does viagra go generic http://www.liujingwen.com/blog/member.asp?action=view&memName=AishaPepper7359
does generic viagra work best place to buy viagra online http://games4king.com/profile/shirleenshe
buy generic viagra online when will generic viagra be available http://games4king.com/profile/torstenacos
cheap generic viagra generic viagra for sale http://secretgirlgames.com/profile/beulahcowli ~~````

 
Friday, 11. 01 19 21:56
bafIsove bafIsoveMD
aus https://movietrailershd.org/ gegsswerggalfi@gmx.us    Website   
 
Thursday, 10. 01 19 21:53
hhybeeri hhybeeriKQ
aus https://almeidacorp.com/ hb546bbehbtl@gmx.co.uk    Website   
 
Thursday, 10. 01 19 16:14
Felipa Whitehouse
aus San Diego felipa.whitehouse@gmx.de    Website   

Keep up the wonderful work, I read few blog posts on this web site and
I conceive that your web site is really interesting and has ggot bands
of woneerful information.

 
Thursday, 10. 01 19 12:48
nsfginny nsfginnyEE
aus https://susamsokagim.com/ h4hrewufmiqv@gmx.co.uk    Website   
 
Thursday, 10. 01 19 12:10
Tobias Burney
aus Chicago tobias.burney@inbox.com    Website   

It's a pity you don't have a donate button! I'd definitely donatte to this
suyperb blog! I suppose for now i'll settle for bookmarking and adding
your RSS feedd to my Google account. I lok forward to neww updates and will talk about this site
witth my Facebook group. Chat soon!

 
Thursday, 10. 01 19 09:16
nsfScOsy nsfScOsyBA
aus https://aluixnetwork.com/ madeleafdhwrsvbpkk@gmx.co.uk    Website   
 
Thursday, 10. 01 19 04:26
vveseddy vveseddyHF
aus http://canadiannowv.com/ sahervah5dhasl@gmx.com    Website   
 
Tuesday, 08. 01 19 20:41
aazQuaks aazQuaksCS
aus https://holidayrentallorgues.com/ ampdfjeabdfetipof@gmx.co.uk    Website   

viagra online usa non prescription viagra generic viagra usa

 
Tuesday, 08. 01 19 11:54
Milla Skidmore
aus La Roche-Sur-Yon millaskidmore@freenet.de    Website   

It is truly a nice and uuseful piece of info. I'm glad that you shared this useful information with us.

Please sfay us informed like this. Thanks for sharing.

 
Tuesday, 08. 01 19 10:41
Lorrine Clunie
aus Foz Do Iguacu lorrineclunie@gmail.com    Website   

I in addition to my pals came checking the best
techniques located on your web page and then at once I got
an wful suspicion I never exprewsed respect to the
website owner for those tips. Those boys casme for this
reason joyful to read through all of them and have seriously
been tapping into those things. I appreciate you for
indeed being simply accommodating and then ffor deciding
on some amaing things most people are really desperate
to discover. My peronal honest regret for not expressing appreciation to
earlier.

 
Saturday, 29. 12 18 18:37
Isobel Leddy
aus Drogeham isobel.leddy@yahoo.com    Website   

http://www.micropromocodes.com Best Place for Upto 80% Off Free
Coupon Codes, Promotion Codes, Discount Deals
and Promo Offers For Online Shopping,Upto 80% Off
Promo Coupon Codes. Save on Online Shopping Always.
Use Coupons.
Exclusive Coupons · Genuine Offers · Updated Daily · Best Coupons · Free Coupons · Best
Offers,
Types: Coupon Codes, Discount Coupons, Offers & Deals,Save Upto 80% Off on Microsoft Store
Promo Code,

 
Thursday, 27. 12 18 16:45
sueroelogsGike sueroelogs
aus http://viaqraonlinegen.com igniplyshulleyHaips@Hooremail.com    Website   

what are the uses of sildenafil tablet generic viagra online tadalafil apotheke austria

 
Monday, 24. 12 18 01:35
Josefina Jephcott
aus Astatt josefinajephcott@gmx.de    Website   

Hi mates, nice post and fastidious arguments commented
here, I am really enjoying by these.

 
Monday, 24. 12 18 00:17
Alva Perin
aus Maastricht alvaperin@yahoo.de    Website   

Great blog you have here.. It's hard to find high
quality writing like yours these days. I tfuly
appreciate individuals lik you! Take care!!

 
Saturday, 22. 12 18 10:52
Ernie Theis
aus Fisher ernietheis@mailservice.ms    Website   

getting hard on sildenafil cheap viagra best sildenafil online forum

 
Wednesday, 12. 12 18 05:19
Ethel Valazquez
aus Billum ethelvalazquez@gmail.com    Website   

do i need to take tadalafil every day [url=http://cialislet.com/]cheap cialis[/url] 10mg cialis vs 50 mg viagra.

 
Friday, 16. 11 18 15:20
Lydia Bustard
aus Schwabau lydiabustard@bigstring.com    Website   

Very good post. I am experiencing many of these issues as
well..

 
Wednesday, 07. 11 18 02:16
Adrianne Cassidy
aus Paris adriannecassidy@mailas.com    Website   

Heya i'm for the first time here. I came across this board and I
find It really useful & it helped me out a lot.
I hope to give something back and help others like you helped me.

 
Thursday, 01. 11 18 22:59
Alda Lemus
aus Santa Maria Villiana aldalemus@gmail.com    Website   

Attractive section of content. I just stujbled upon your site
and iin accession capital to assert that I acquire in fact enjoyed account your blog posts.
Any way I'll be subscribing to your augment and even I achievement you access consistently
fast.

 
Sunday, 21. 10 18 06:24
Clifton Theriot
aus Layer De La Haye clifton_theriot@inbox.com    Website   

I'll right away grasp your rss feed as I can not in finding your
e-mail subscription link or e-newsletter service. Do you have any?
Please allow me recognize so that I could subscribe. Thanks.

 
Saturday, 20. 10 18 18:53
Dominik Cabe
aus Norrtalje dominikcabe@gmail.com    Website   

An outstanding share! I've just forwarded this onto a colleague who had been conducting a little homework on this.
And he actually bought me breakfast because
I stumbled upon it for him... lol. So let me reword this....
Thank YOU for the meal!! But yeah, thanx for spending time to discuss this subject
here on your web site.

 
Friday, 21. 09 18 19:34
Jerilyn Royster
aus Bellach jerilynroyster@gmail.com    Website   

I have been examinating out a few of your posts and i can claim clever stuff.
I will definitely bookmark your website.

 
Thursday, 20. 09 18 01:09
Ron Chinnery
aus Hafnafjor?Ur ronchinnery@aol.com    Website   

Every weekend i used to pay a quick visit this site, as i wish
for enjoyment, since this this site conations actually nice funny stuff too.




Barcelona fotballdrakter 2018

 
Friday, 31. 08 18 19:03
Catharine Oliver
aus Overlida catharineoliver@gmail.com    Website   

As a Newbie, I am permanently exploring online for artucles that caan help me.
Thank you

 
Wednesday, 15. 08 18 10:53
Coy Schweizer
aus Arlanda Stad coyschweizer@gmail.com    Website   

Great post. I was checking continuously this blog
and I'm impressed! Extremely useful info specifically the last part :) I care for such
info a lot. I was looking for this particular information for a very long time.
Thank you and best of luck.

 
Monday, 06. 08 18 18:46
Numbers Shah
aus Kettenhausen numbers_shah@freenet.de    Website   

They attempt to be like everybody else.

 
Sunday, 11. 03 07 22:36
Heinz Otto
aus test heinz.otto@gmx.de    Website   

Hallo,

sie wollen eine alternative nutzen ohen mod_rewrite, nutzen unten aber für eine Umleitung auch eine solche Lösung, das macht doch keinen Sinn...

Kommentar:
Die Idee dahinter ist, dass mod_rewrite nur verwendet wird um den script-namen ohne Extension umzusetzen, nicht jedoch die Parameter dahinter. Gleiches lässst sich mit der .htacess-Option ForceType erreichen, die aber bei providern oft deaktiviert ist. Aber ich werde ein entsprechendes Beispiel hinzufügen. Dann ists komplett mod_rewrite-los ;)

 
 

Kommentar schreiben