Чтобы добавить дефис в URL в мод переписать

Мне любопытно, почему это не может работать и ищу решение.

следующее в моем htaccess

RewriteRule ^field/category/([a-zA-Z0-9\-]+)&([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2

Это работает хорошо, и URL будет domain.com/field/category/Ball&Drinks

Как я могу изменить & на - и сделать так, чтобы он стал domain.com/field/category/Ball-Drinks

я попробую

RewriteRule ^field/category/([a-zA-Z0-9\-]+)-([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2

и это не работает. Символ - не считается буквальным. Кто-нибудь может помочь? Благодарю.

2 ответа

Я знаю, что это старый вопрос, но я потратил час на то, чтобы понять это, поэтому решил, что должен поделиться ответом:

Заменить дефис на [\-] чтобы получить RewriteRule для обработки его как строкового литерала.

Итоговый код будет таким: ^field/category/([a-zA-Z0-9\-]+)[\-]([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2

Вы должны избежать - персонажа:

RewriteRule ^field/category/([a-zA-Z0-9\-]+)\-([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2
Другие вопросы по тегам