2016-03-28 8 views
0

Ich habe eine URL, die eine der folgenden sein:Rewrite-URLs ohne die zweite Variable

1. example.com/index/var1=word&var2=word&var3=number&var4=number&var5=word&var6=word&page=number 
2. example.com/index/var1=word&var2=word&var3=number&var4=number&var5=word&var6=word 
3. example.com/index/var1=word&var3=number&var4=number&var5=word&var6=word&page=number 
4. example.com/index/var1=word&var3=number&var4=number&var5=word&var6=word 

Dieser meine aktuelle .htaccess ist:

RewriteCond %{THE_REQUEST} /index\?var1=([^&\s]+)&var2=([^&\s]+)&var3=([^&\s]+)&var4=([^&\s]+)&var5=([^&\s]+)&var6=([^&\s]+) [NC] 
RewriteRule^index/%1/%2/%3/%4/%5/%6? [L,R=302,NE] 

RewriteRule ^index/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5&var6=$6&page=$7 [L,QSA] 
RewriteRule ^index/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5&var6=$6 [L,QSA] 
RewriteRule ^index/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?var1=$1&var3=$2&var4=$3&var5=$4&var6=$5 [L,QSA] 

URL 1,2 und 4 arbeiten, Die URL Nummer 3 wird jedoch wie folgt gelesen:

3. RewriteRule ^index/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?var2=$1&var3=$2&var4=$3&var5=$4&var6=$5 [L,QSA] 

Was muss geändert werden?

Antwort

0

Sie können den zweiten perameter optional in Ihrem Zustand und Rule Muster entsprechen:

RewriteCond %{THE_REQUEST} /index\?var1=([^&\s]+)(?:&var2=([^&\s]*/?))?&var3=([^&\s]+)&var4=([^&\s]+)&var5=([^&\s]+)&var6=([^&\s]+) [NC] 
RewriteRule^index/%1/%2%3/%4/%5/%6? [L,R=302,NE] 

RewriteRule ^index/([^/]+)/([^/]*/)?([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5&var6=$6&page=$7 [L,QSA] 
+0

soll ich nur das einzelne 'RewriteCond% hat {THE_REQUEST}' oder beides? Können Sie ein vollständiges Beispiel für alle 4 URLs zeigen? – user3312792

+0

Interner Serverfehler – user3312792

Verwandte Themen