.htaccess - регулярные выражение любых символов

пытаюсь сделать ЧПУ ссылки. Вроде всё получалось, до одного момента:

https://example.com/posts/Looking-to-buy-Adult-traffic-??/226

Если в регулярном выражении есть ? - запрос крашится и получается 404.

Все остальное ссылки в виде:

https://example.com/posts/Forex-/-Crypto-traffic-available/154

Работают правильно.

Сейчас правильно работает вот так:

RewriteRule ^(.*)/([0-9]+)$ index.php?sub=$1&rid=$2
RewriteRule ^(.*)/([0-9]+)/$ index.php?sub=$1&rid=$2

И вроде бы должно работать правильно, т.к. (.*) - любые символы, пробовал так же ([^/]*), но увы, результат такой же. Работают все ссылки, кроме тех, где есть ?.

Как я понял, у меня есть одно решение, которое должно помочь - закодировать знак вопроса в %3f с помощью php, но можно ли решить эту проблему не прибегая к такому решению?

UPD:

Что бы Работало решение @teran, нужно включить AllowEncodedSlashes, однако, после включения все ссылки ведут на error 500, пробовал так же добавить ключ [B], но это тоже не работает, поскольку нужно AllowEncodedSlashes, в общем получается замкнутый круг, разорвать который, пока что не представляю как...

Note that you may also need to set AllowEncodedSlashes to On to get this 
particular example to work, as httpd does not allow encoded slashes in URLs,
and returns a 404 if it sees one.

Написано на официальном сайте


Ответы (0 шт):