baig772
baig772

Reputation: 3498

.htaccess issue for 5 variables

Following is my .htaccess file.

AddDefaultCharset utf-8
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [L]

DirectoryIndex index.php
RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4&q=$5 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)?$ index\.php?page=$1&s=$2 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/?$ index\.php?page=$1 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})?$ index\.php?page=$1 [L]

ErrorDocument 404 /404

when i do

ehco "<pre>";
print_r($_REQUEST);
echo "</pre>";

with 3 parameters, it shows me

Array
(
    [page] => test
    [s] => 1
    [o] => 9
    [p] => 
    [q] => 
)

but if more than 3 parameters, it says not found. The .htaccess is working fine for the following URL myhost/mysite/page/s/o but not for myhost/page/s/o/p

Upvotes: 0

Views: 118

Answers (2)

anubhava
anubhava

Reputation: 786289

Your correct full .htaccess can be this:

AddDefaultCharset utf-8
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

DirectoryIndex index.php

RewriteRule ^(\w{3,20})/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index\.php?page=$1&s=$2&o=$3&p=$4&q=$5 [QSA,L]

RewriteRule ^(\w{3,20})/([^/]+)/([^/]+)/([^/]+)/?$ index\.php?page=$1&s=$2&o=$3&p=$4 [QSA,L]

RewriteRule ^(\w{3,20})/([^/]+)/([^/]+)/?$ index\.php?page=$1&s=$2&o=$3 [QSA,L]

RewriteRule ^(\w{3,20})/([^/]+)/?$ index\.php?page=$1&s=$2 [QSA,L]

RewriteRule ^(\w{3,20})/?$ index\.php?page=$1 [QSA,L]

ErrorDocument 404 /404

Upvotes: 0

Vlad Nikitin
Vlad Nikitin

Reputation: 1951

some changes of your code:

AddDefaultCharset utf-8
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [L]

DirectoryIndex index.php
RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4&q=$5 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)?$ index\.php?page=$1&s=$2 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/?$ index\.php?page=$1 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})?$ index\.php?page=$1 [L]

ErrorDocument 404 /404

Upvotes: 1

Related Questions