Я пытаюсь написать дружественные usl-сети с помощью Apache Mod-Rewrite.Правило перезаписи не работает должным образом
Мои URL-адреса выглядят примерно так.
index.php?p=edit-profile
index.php?p=edit-profile&id=3
index.php?p=edit-profile&id=3&city=sydney
index.php?p=edit-profile&id=3&city=sydney&name=some example text
Вот как я попробовал.
RewriteRule ^([\w-]+)/?$ index.php?p=$1 [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/?$ index.php?p=$1&id=$2 [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ index.php?p=$1&id=$2&city=$3 [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/([\w-]+)/?$ index.php?p=$1&id=$2&city=$3&name=$4 [L,QSA,NC]
Здесь для меня работают первое, второе и третье правила. Но моя проблема: если у меня есть строка с пробелами для четвертой переменной, мое четвертое правило не работает. А также, если у меня есть одно слово для четвертого, это не сработает.
Может кто-нибудь сказать мне, как я исправить эту проблему. Есть ли способ заменить эти пространства дефисом?
спасибо.
Спасибо. Можно ли заменить пространство дефисом? – user3733831
Это можно сделать, но это не очень хорошая идея. Таким образом, ваш php-код получит исходную строку в массиве GET. – anubhava
Понял .. Спасибо за ваше время. – user3733831