2016-09-22 3 views
0

Так вот мой вопрос ..mod_rewrite не позволяя аз

Это гиперссылка у меня есть: /category.php?cat=8

это гиперссылка им пытаются достичь: /партии -СОБЫТИЯ/кухня/

в базе данных категория имеет идентификатор, главный, югу, main_slug и sub_slug

Это:/main_slug/sub_slug/

У меня был

RewriteRule ^([a-z]+)\/?$ $1.php [NC] 
RewriteRule ^([a-z]+)\/([0-9]+)\/?$ category.php?param=$1&param2=$2 [NC] 

какие выходы и работает нормально:/категория/8/

НО .. это только работает с цифрами, ничего больше. Я получаю не найденную страницу, если я использую и письма.

Но я потерялся в отношении регулярного выражения htaccess, чтобы использовать только основные и вспомогательные slugs, а не только числа.

Любая помощь будет оценена по достоинству.

+0

Не могли бы вы показать мне пример? – ValhallaSkies

+1

'RewriteRule^(\ w +) \/(\ w +) /? $ Category.php? Param = $ 1 & param2 = $ 2 [L, QSA]' – anubhava

+0

Таким образом, страница загружается, но только распознает номер, а не текстовый пул. .hmm .. – ValhallaSkies

ответ

1

В этом правиле:

RewriteRule ^([a-z]+)\/([0-9]+)\/?$ category.php?param=$1&param2=$2 [NC] 

([a-z]+) бит означает «один или более букв между а и г»

([0-9]+) бит означает «один или несколько чисел от 0 до 9»

Похоже, что то, что вы просите, будет выполнено путем замены [0-9] на другой [a-z]. Однако, если вы хотите принять любой символ, а не только a-z и/или 0-9, замените оба из них только ([^/]+), что означает «один или несколько символов не-косой черты».

+0

Или, как подсказывает @anubhava, вы можете использовать \ w, что означает «символы слова», который соответствует az, AZ, 0-9 и символ подчеркивания «_». Все зависит от того, насколько вы ограничиваетесь. –

+0

Я получил его, чтобы загрузить страницу сейчас, используя буквы, но мой запрос по-прежнему остается только чтением чисел, а не текстовой записью. $ _REQUEST [ 'param2']. любые идеи, почему это было бы? – ValhallaSkies

+0

Можем ли мы увидеть, как выглядит ваш обновленный набор правил? –

Смежные вопросы