Dit is een topic in Community » Forum » Pro » Web ontwikkeling

[Htacces] Rewrite wordt niet gepakt

Rimsic

Rimsic op 15 maart 2010 #

Hey, Ik zit al een hele tijd te prutsen met een htaccess rewriterule, ik heb onderstaande code draaiend gehad op mijn eigen host en dat werkte prima. Nu is hij naar een andere host overgeplaatst maar werkt een deel van de htaccess niet meer, ik zie alleen niet wat het probleem is. Wat moet hij doen De pagina 'index.php?p=guestbook&page=1' wordt 'guestbook/1' en 'guestbook/2' etc. Hij pakt de p=guestbook wel maar de page=1 niet. Het gekke is dat hij dit wel doet bij een andere pagina, ik heb al gekeken wat de verschillen zijn maar heb het niet kunnen vinden. Htaccess code Options +FollowSymlinks RewriteEngine on RewriteRule ^photos/(.*)/ index.php?p=projects&cat=photos&page=$1 [L,NC] RewriteRule ^photos/(.*) index.php?p=projects&cat=photos&page=$1 [L,NC] RewriteRule ^guestbook/(.*)/ index.php?p=guestbook&page=$1 [L,NC] RewriteRule ^guestbook/(.*) index.php?p=guestbook&page=$1 [L,NC] RewriteRule ^photos/ index.php?p=projects&cat=photos [L,NC] RewriteRule ^photos index.php?p=projects&cat=photos [L,NC] RewriteRule ^guestbook/ index.php?p=guestbook [L,NC] RewriteRule ^guestbook index.php?p=guestbook [L,NC] PHP File van guestbook (hier krijgt $page dus geen waarde) $page = 1; $start = 0; if(isset($_GET['page']) && is_numeric($_GET['page']) && $_GET['page'] > 0 && $_GET['page'] <= $max_pages) { $page = $_GET['page']; $start = ($page - 1) * $max_items; } PHP File van photos, hier krijgt $page wel een waarde if(!empty($_GET['page'])){ if(is_numeric($_GET['page']) && $_GET['page'] >= 1){ $page = $_GET['page']; $from = ($page - 1) * 12; } } Als ik gewoon $_GET['page'] echo aan het begin is hij dus leeg... Wie kan mij uit de brand helpen.. ik kom er echt niet meer uit.

The JM

The JM op 15 maart 2010 #

Verander alle soortgelijke regels als "RewriteRule ^photos/(.*)/" eens naar "RewriteRule ^photos/(.*)$/" (Dus met $ achter de variabele). Grote kans dat het dan wel werkt

ElbertJNagel op 15 maart 2010 #

Als het bovenstaande niet werkt.. Staat mod_rewrite engine in httpd.conf aan?

Rimsic

Rimsic op 15 maart 2010 #

The JM Verander alle soortgelijke regels als "RewriteRule ^photos/(.*)/" eens naar "RewriteRule ^photos/(.*)$/" (Dus met $ achter de variabele). Grote kans dat het dan wel werkt

Helaas, geen oplossing. @ElbertJNagel: waar mag ik dat kunnen vinden? Het is niet mijn eigen host en kan bar weinig aanpassen op deze host... htaccess wordt wel ondersteund op de server. bedankt iig voor de reacties

The JM

The JM op 15 maart 2010 #

Toch, als ik zelf test door dit: RewriteRule ^photos/(.*) index.php?p=projects&cat=photos&page=$1 [L,NC] Te vervangen door dit: RewriteRule ^photos/(.*)$ index.php?p=projects&cat=photos&page=$1 [L,NC] Dan werkt het... Ik zie niet dat je een 404 krijgt als je naar die pagina's gaat, dus dan zou in principe de mod_rewrite engine aan moeten staan.

Rimsic

Rimsic op 15 maart 2010 #

ja het gekke is dat hij bij photos wel werkt maar bij guestbook niet ...

ElbertJNagel op 16 maart 2010 #

Als het ene wel werkt staat mod_rewrite wel aan anders krijg je waarschijnlijk een blank screen of een 404 error. Het bestand httpd.conf zou in de conf/apache map op de server moeten staan, de meeste hosts geven helaas (of gelukkig, veel servers worden opgedeeld voor meerdere domeinen maar gebruiken wel dezelfde httpd.conf ) geen toegang tot httpd.conf. Om te kijken welke modules aan of uit staan kun je een keer phpinfo() runnen maar dat is dus eigenlijk niet aan de orde

Rimsic

Rimsic op 16 maart 2010 #

Ok, ja phpinfo had ik al even uitgevoerd. Ik vind het maar apart dat het niet werkt

ieperlingetje

ieperlingetje op 16 maart 2010 #

je hebt 2 keer guestbook in je mod rewrite. Dat kan eventueel de oorzaak zijn (ook al staat L bij de flags)

Rimsic

Rimsic op 17 maart 2010 #

dat maakt niet zoveel uit, ook met één regel doet hij het niet. Andere rewrites doen het wel met een 'dubbele' regel er in.

UsurPia

UsurPia op 17 maart 2010 #

In de eerste oplossing die The JM biedt, staat het dollar teken verkeerd (voor de / ipv erna). Als je sowieso er vanuit gaat dat je input numeriek moet zijn, kun je wellicht beter het volgende doen: RewriteRule ^guestbook/([0-9]+)/$ index.php?p=guestbook&page=$1 [NC] Zo bepaal je dat alleen de waarde doorgestuurd moet worden als hij numeriek is.

The JM

The JM op 17 maart 2010 #

UsurPia In de eerste oplossing die The JM biedt, staat het dollar teken verkeerd (voor de / ipv erna).

In de regel die ik verbeterde stond geen schuine streep, maar goed

Rimsic

Rimsic op 17 maart 2010 #

Nog steeds niks.... ik zie 't niet meer. Dan maar zonder htaccess... Bedankt iig voor alle tips en moeite!

Je kunt alleen reageren met een gratis OMT account.
Log in of registreer.

Inloggen

Over dit topic

Gestart op 15 maart 2010 door Rimsic

Laatste reactie door Rimsic

Reageer op dit topic