[Htacces] Rewrite wordt niet gepakt
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 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 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 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.
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 op 16 maart 2010 #
Ok, ja phpinfo had ik al even uitgevoerd. Ik vind het maar apart dat het niet werkt ![]()
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 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 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 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 op 17 maart 2010 #
Nog steeds niks.... ik zie 't niet meer. Dan maar zonder htaccess...
Bedankt iig voor alle tips en moeite!
Advertentie
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