Hya,
Ik heb hetvolgende in .htaccess staan.
Options +FollowSymLinks
RewriteEngine on
RewriteRule pagina-(.*) ?page=$1
http://www.ff.fm/3/pagina-blah laadt http://www.ff.fm/3/?page=blah
Dit is dus wat ik wil.
Echter, ik wil dat hele 'pagina-' er niet bij.
http://www.ff.fm/3/blah zou dus http://www.ff.fm/3/?page=blah moeten laden.
Haal ik `pagina-' weg uit de RewriteRule dan werkt het niet.
Wat zie ik over het hoofd?
Evenementen voor de komende 60 Dag(en)
Resultaten 1 tot 7 van de 7
Onderwerp: RewriteRule url -> $_GET
-
RewriteRule url -> $_GET
-
Re: RewriteRule url -> $_GET
Jeroen Heijmans <ffchat@gmail.com> writes:
> Hya,
>
> Ik heb hetvolgende in .htaccess staan.
>
> Options +FollowSymLinks
> RewriteEngine on
> RewriteRule pagina-(.*) ?page=$1
>
> http://www.ff.fm/3/pagina-blah laadt http://www.ff.fm/3/?page=blah
> Dit is dus wat ik wil.
>
> Echter, ik wil dat hele 'pagina-' er niet bij.
> http://www.ff.fm/3/blah zou dus http://www.ff.fm/3/?page=blah moeten laden.
> Haal ik `pagina-' weg uit de RewriteRule dan werkt het niet.
>
> Wat zie ik over het hoofd?
RewriteRule 3/(.+) ?page=$1
Uit mijn hoofd
Als 3 slechts een voorbeeld is, en je wilt het voor alles laten werken
als het maar een "subdir" is:
RewriteRule ^[^/]+/(.+) ?page=$1
Dwz. het begint met iets (maar geen /), gevolgt door een / gevolgt door
iets anders, ga dan naar page=ietsanders.
--
John Bokma j3b
Hacking & Hiking in Mexico - http://johnbokma.com/
http://castleamber.com/ - Perl & Python Development
-
Re: RewriteRule url -> $_GET
John Bokma <john@castleamber.com> writes:
> Jeroen Heijmans <ffchat@gmail.com> writes:
>
>> Hya,
>>
>> Ik heb hetvolgende in .htaccess staan.
>>
>> Options +FollowSymLinks
>> RewriteEngine on
>> RewriteRule pagina-(.*) ?page=$1
>>
>> http://www.ff.fm/3/pagina-blah laadt http://www.ff.fm/3/?page=blah
>> Dit is dus wat ik wil.
>>
>> Echter, ik wil dat hele 'pagina-' er niet bij.
>> http://www.ff.fm/3/blah zou dus http://www.ff.fm/3/?page=blah moeten laden.
>> Haal ik `pagina-' weg uit de RewriteRule dan werkt het niet.
>>
>> Wat zie ik over het hoofd?
>
> RewriteRule 3/(.+) ?page=$1
>
> Uit mijn hoofd
>
> Als 3 slechts een voorbeeld is, en je wilt het voor alles laten werken
> als het maar een "subdir" is:
>
> RewriteRule ^[^/]+/(.+) ?page=$1
>
> Dwz. het begint met iets (maar geen /), gevolgt door een / gevolgt door
> iets anders, ga dan naar page=ietsanders.
Wat wellicht ook werkt:
RewriteRule ([^/])+$ ?page=$1
Wellicht het makkelijkste. Dit pakt het ding achter de / en propt het in
$1
Wellicht wil je dit niet over je hele site, maar dan hoor ik het wel.
--
John Bokma j3b
Hacking & Hiking in Mexico - http://johnbokma.com/
http://castleamber.com/ - Perl & Python Development
-
Re: RewriteRule url -> $_GET
On Wed, 03 Mar 2010 16:45:55 -0600, John Bokma wrote:
> John Bokma <john@castleamber.com> writes:
>
>> Jeroen Heijmans <ffchat@gmail.com> writes:
>>
>>> Hya,
>>>
>>> Ik heb hetvolgende in .htaccess staan.
>>>
>>> Options +FollowSymLinks
>>> RewriteEngine on
>>> RewriteRule pagina-(.*) ?page=$1
>>>
>>> http://www.ff.fm/3/pagina-blah laadt http://www.ff.fm/3/?page=blah Dit
>>> is dus wat ik wil.
>>>
>>> Echter, ik wil dat hele 'pagina-' er niet bij. http://www.ff.fm/3/blah
>>> zou dus http://www.ff.fm/3/?page=blah moeten laden. Haal ik `pagina-'
>>> weg uit de RewriteRule dan werkt het niet.
>>>
>>> Wat zie ik over het hoofd?
>>
>> RewriteRule 3/(.+) ?page=$1
>>
>> Uit mijn hoofd
>>
>> Als 3 slechts een voorbeeld is, en je wilt het voor alles laten werken
>> als het maar een "subdir" is:
>>
>> RewriteRule ^[^/]+/(.+) ?page=$1
>>
>> Dwz. het begint met iets (maar geen /), gevolgt door een / gevolgt door
>> iets anders, ga dan naar page=ietsanders.
>
> Wat wellicht ook werkt:
>
> RewriteRule ([^/])+$ ?page=$1
>
> Wellicht het makkelijkste. Dit pakt het ding achter de / en propt het in
> $1
>
> Wellicht wil je dit niet over je hele site, maar dan hoor ik het wel.
Ik heb het even verplaatst naar http://www.ff.fm/.
Misschien kan het niet hoor
Ik wil namelijk directories zoals http://www.ff.fm/vmoo/ kunnen blijven
gebruiken. Ik wil ook bestanden zoas http://www.ff.fm/scripts/screen.css
kunnen aanroepen
Bij jouw voorbeeld kon dat niet meer 
Het gaat maar om een paar bestanden. Misschien dat ik deze maar met de
hand ga invoeren.
Ik heb in PHP dit staan:
<?php
if(isset($_GET['page'])) {
switch($_GET['page']) {
case 'article1':
$page = 'article1';
break;
case 'article2':
$page = 'article2';
break;
case 'article3';
$page = 'article3';
break;
case 'article4';
$page = 'article4';
break;
default:
$page = 'article9';
}
} else {
$page = 'article8';
}
?>
Dan zou ik die termen ook gewoon moeten kunnen gebruiken bij de
RewriteRule.
RewriteRule ^article1$ ?page=article1
enz.
Natuurlijk wordt die naam nog aangepast
-
Re: RewriteRule url -> $_GET
Jeroen Heijmans <ffchat@gmail.com> writes:
> On Wed, 03 Mar 2010 16:45:55 -0600, John Bokma wrote:
>
>> John Bokma <john@castleamber.com> writes:
>>
>>> Jeroen Heijmans <ffchat@gmail.com> writes:
>>>
>>>> Hya,
>>>>
>>>> Ik heb hetvolgende in .htaccess staan.
>>>>
>>>> Options +FollowSymLinks
>>>> RewriteEngine on
>>>> RewriteRule pagina-(.*) ?page=$1
>>>>
>>>> http://www.ff.fm/3/pagina-blah laadt http://www.ff.fm/3/?page=blah Dit
>>>> is dus wat ik wil.
>>>>
>>>> Echter, ik wil dat hele 'pagina-' er niet bij. http://www.ff.fm/3/blah
>>>> zou dus http://www.ff.fm/3/?page=blah moeten laden. Haal ik `pagina-'
>>>> weg uit de RewriteRule dan werkt het niet.
>>>>
>>>> Wat zie ik over het hoofd?
>>>
>>> RewriteRule 3/(.+) ?page=$1
>>>
>>> Uit mijn hoofd
>>>
>>> Als 3 slechts een voorbeeld is, en je wilt het voor alles laten werken
>>> als het maar een "subdir" is:
>>>
>>> RewriteRule ^[^/]+/(.+) ?page=$1
>>>
>>> Dwz. het begint met iets (maar geen /), gevolgt door een / gevolgt door
>>> iets anders, ga dan naar page=ietsanders.
>>
>> Wat wellicht ook werkt:
>>
>> RewriteRule ([^/])+$ ?page=$1
>>
>> Wellicht het makkelijkste. Dit pakt het ding achter de / en propt het in
>> $1
>>
>> Wellicht wil je dit niet over je hele site, maar dan hoor ik het wel.
>
> Ik heb het even verplaatst naar http://www.ff.fm/.
>
> Misschien kan het niet hoor
> Ik wil namelijk directories zoals http://www.ff.fm/vmoo/ kunnen blijven
> gebruiken. Ik wil ook bestanden zoas http://www.ff.fm/scripts/screen.css
> kunnen aanroepen
Bij jouw voorbeeld kon dat niet meer 
Klopt, wat je kan doen is: welke tekens zijn toegestaan. Op dit moment
lijken dat letters en cijfers te zijn, dus we maken er van:
RewriteRule /([a-z0-9])+$ ?page=$1
Dwz, als er een / is, gevolgd door een of meer letters/cijfers, doe dan
het ding. Die / aan het begin beperkt het wel tot "subdirectories", dus:
http://example.com/foo/bar
zal werken
http://example.com/foo
niet.
Dit is op te lossen door of de regexp complexer te maken, of door een
extra rule toe te voegen:
RewriteRule ^([a-z0-9])+$ ?page=$1
> Het gaat maar om een paar bestanden. Misschien dat ik deze maar met de
> hand ga invoeren.
Wat je dan weer kan doen is:
RewriteRule (article1|article2|article3....)$ ?page=$1
Dit is vrij breed, omdat er geen beperking(en) voor de lijst met
alternatieven staat, dus:
http://example.com/foo/article1
http://example.com/article1
http://example.com/foooooarticle1
proberen allemaal die interne redirect te doen.
Als het altijd in een "subdir" staat kan je dat oplossen door:
RewriteRule /(article1|article2|article3....)$ ?page=$1
te doen.
Overigens, als die namen inderdaad gelijk blijven, gevolgt door een
volgnummer dan is dat weer korter te schrijven door:
RewriteRule /(article[1-9])$ ?page=$1
te gebruiken (als er maar 9 zijn)
> RewriteRule ^article1$ ?page=article1
> enz.
>
> Natuurlijk wordt die naam nog aangepast
Je zou dus dan:
RewriteRule ^(foo|bar|baz)$ ?page=$1
kunnen gebruiken.
() = group and capture
| = alternate
--
John Bokma j3b
Hacking & Hiking in Mexico - http://johnbokma.com/
http://castleamber.com/ - Perl & Python Development
- advertentie
-
Re: RewriteRule url -> $_GET
On Thu, 04 Mar 2010 11:47:07 -0600, John Bokma wrote:
> Jeroen Heijmans <ffchat@gmail.com> writes:
>
>> On Wed, 03 Mar 2010 16:45:55 -0600, John Bokma wrote:
>>
>>> John Bokma <john@castleamber.com> writes:
>>>
>>>> Jeroen Heijmans <ffchat@gmail.com> writes:
>>>>
>>>>> Hya,
>>>>>
>>>>> Ik heb hetvolgende in .htaccess staan.
>>>>>
>>>>> Options +FollowSymLinks
>>>>> RewriteEngine on
>>>>> RewriteRule pagina-(.*) ?page=$1
>>>>>
>>>>> http://www.ff.fm/3/pagina-blah laadt http://www.ff.fm/3/?page=blah
>>>>> Dit is dus wat ik wil.
>>>>>
>>>>> Echter, ik wil dat hele 'pagina-' er niet bij.
>>>>> http://www.ff.fm/3/blah zou dus http://www.ff.fm/3/?page=blah moeten
>>>>> laden. Haal ik `pagina-' weg uit de RewriteRule dan werkt het niet.
>>>>>
>>>>> Wat zie ik over het hoofd?
>>>>
>>>> RewriteRule 3/(.+) ?page=$1
>>>>
>>>> Uit mijn hoofd
>>>>
>>>> Als 3 slechts een voorbeeld is, en je wilt het voor alles laten
>>>> werken als het maar een "subdir" is:
>>>>
>>>> RewriteRule ^[^/]+/(.+) ?page=$1
>>>>
>>>> Dwz. het begint met iets (maar geen /), gevolgt door een / gevolgt
>>>> door iets anders, ga dan naar page=ietsanders.
>>>
>>> Wat wellicht ook werkt:
>>>
>>> RewriteRule ([^/])+$ ?page=$1
>>>
>>> Wellicht het makkelijkste. Dit pakt het ding achter de / en propt het
>>> in $1
>>>
>>> Wellicht wil je dit niet over je hele site, maar dan hoor ik het wel.
>>
>> Ik heb het even verplaatst naar http://www.ff.fm/.
>>
>> Misschien kan het niet hoor
>> Ik wil namelijk directories zoals http://www.ff.fm/vmoo/ kunnen blijven
>> gebruiken. Ik wil ook bestanden zoas
>> http://www.ff.fm/scripts/screen.css kunnen aanroepen
Bij jouw
>> voorbeeld kon dat niet meer
>
Ik neig zelf toch naar deze regel.
> RewriteRule ^([a-z0-9])+$ ?page=$1
Het 'leuke' is dat deze een vreemd resultaat geeft.
Ik laat $page ook nog echo'en in de pagina om te vergelijken en ik krijg
alleen maar de laatste letter terug.
>> Natuurlijk wordt die naam nog aangepast
>
> Je zou dus dan:
> RewriteRule ^(foo|bar|baz)$ ?page=$1
>
*grin* die had ik wel kunnen vinden (en werkend gekregen).
-
Re: RewriteRule url -> $_GET
Jeroen Heijmans <ffchat@gmail.com> writes:
> On Thu, 04 Mar 2010 11:47:07 -0600, John Bokma wrote:
[..]
> Ik neig zelf toch naar deze regel.
>
>> RewriteRule ^([a-z0-9])+$ ?page=$1
>
> Het 'leuke' is dat deze een vreemd resultaat geeft.
> Ik laat $page ook nog echo'en in de pagina om te vergelijken en ik krijg
> alleen maar de laatste letter terug.
Klopt, mijn fout, dit had moeten zijn:
RewriteRule ^([a-z0-9]+)$ ?page=$1
>>> Natuurlijk wordt die naam nog aangepast
>>
>> Je zou dus dan:
>> RewriteRule ^(foo|bar|baz)$ ?page=$1
>
> *grin* die had ik wel kunnen vinden (en werkend gekregen).
Ja, die is het makkelijkste bij een beperkt aantal paginas. Minste kans
op false positives.
--
John Bokma j3b
Hacking & Hiking in Mexico - http://johnbokma.com/
http://castleamber.com/ - Perl & Python Development



LinkBack URL
About LinkBacks
