Перепишите, когда имя включает вопросительный знак (?) - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть переписать на месте, который делает то, что я хочу.Он переписывает URL следующим образом:

https://db.ygoprodeck.com/card/?search=kuriboh

На следующее:

https://db.ygoprodeck.com/card/kuriboh/

У меня также есть дополнительная перезапись для обработки "/" в имени, например:

https://db.ygoprodeck.com/card/D/D/D%20Destiny%20King%20Zero%20Laplace/

Мой htaccess выглядит следующим образом:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?card/(.*?)/?$ /card/?search=$1 [L]

RewriteCond %{THE_REQUEST} \s/card(?:\.php)?/?\?search=([^\&\s]+) [NC]
RewriteRule ^ /card/%1? [L,R=301,NE]

Теперь я только что обнаружил проблему, когда?в самом названии моего предмета, только все до?взят.

https://db.ygoprodeck.com/card/Danger!?%20Tsuchinoko?

Читается как:

https://db.ygoprodeck.com/card/Danger!

Я все еще пытаюсь научиться переписывать, поэтому я не уверен, как это сделать.Объяснение будет очень цениться.

...