2016-03-29 19 views
1

Kapağında yeniden yazma durumunda boş bir parametrenin URL olarak iletilmesinde sorun yaşıyorum.Yeniden dizgilerin yeniden yazılması için boş dizeleri parametre olarak tutmak regexp

basit yeniden listem bütün parametreler splitter alır/ve php GET olarak iletir:

---.com/fiction//:

RewriteRule /?([A-Z.a-z0-9_-]*)/?([A-Z.a-z0-9_-]*)/?([A-Z.a-z0-9_-]*)/?([A-Z.a-z0-9_-]*)/?([A-Z.a-z0-9_-]*)/?([A-Z.a-z0-9_-]*)/?$ index.php?option1=$1&option2=$2&option3=$3&option4=$4&option5=$5&option6=$6 

ama bu URL'yi çalıştığınızda

: Bunları bulmak 204

php parametreleri (url çift / dikkat edin) GET

Array ( 
[option1] => fiction 
[option2] => 204 
[option3] => 
[option4] => 
[option5] => 
[option6] =>) 

Ama

Array ( 
[option1] => fiction 
[option2] => 
[option3] => 204 
[option4] => 
[option5] => 
[option6] =>) 
Ben rexexp için boş bir dize ekleyerek çalıştı

istiyorum: (^$|[A-Z.a-z0-9_-]*) ama bu işe yaramazsa ..

fikrin var mı?

cevap

0

Bu boş değerler tek / içine RewriteCondRewriteRule yana şeritler tüm birden / s yakalanan gerekir.

Bu sizin için çalışması gerekir:

RewriteCond %{REQUEST_URI} ^/([\w-]*)(?:/([\w-]*)(?:/([\w-]*)(?:/([\w-]*)(?:/([\w-]*)(?:/([\w-]*))?)?)?)?)?/?$ 
RewriteRule^index.php?option1=%1&option2=%2&option3=%3&option4=%4&option5=%5&option6=%6 [L,QSA] 

Bu kural ilk parametre isteğe sonraki her parametreyi yapar.

0

Muhtemelen yerine sahip olduğunuz birinin bu 6 kurallara ihtiyacımız:

RewriteRule /([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/?$ index.php?option1=$1&option2=$2&option3=$3&option4=$4&option5=$5&option6=$6 
RewriteRule /([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/?$ index.php?option1=$1&option2=$2&option3=$3&option4=$4&option5=$5 
RewriteRule /([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/?$ index.php?option1=$1&option2=$2&option3=$3&option4=$4 
RewriteRule /([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/?$ index.php?option1=$1&option2=$2&option3=$3 
RewriteRule /([A-Z.a-z0-9_-]*)/([A-Z.a-z0-9_-]*)/?$ index.php?option1=$1&option2=$2 
RewriteRule /([A-Z.a-z0-9_-]*)/?$ index.php?option1=$1 
RewriteRule /$ index.php 

Ama ben genellikle kötü bir fikir olduğunu düşünüyorum, tüm tarayıcılarla & sunucularını çalışacak çoklu ardışık eğik çizgiler ile emin URL'ler değilim .

İlgili konular