#regex #apache #.htaccess #mod-rewrite #url-rewriting
#регулярное выражение #apache #.htaccess #мод-перезапись #url-перезапись
Вопрос:
Я попытался переписать этот URL
https://www.test.com/blog/post/41/postname.html
Для
https://www.test.com/content.php?coId=11amp;postId=41
Автор:
RewriteCond %{REQUEST_URI} (.*)/blog/post/([0-9]*)/(.*).html$
RewriteRule (.*) /content.php?coId=11amp;wpPostId=%2 [QSA,L]
Однако амперсанд в RewriteRule, вероятно, неправильно экранирован, и я не нашел никакого решения, как это сделать. Согласно тестеру htaccess на https://htaccess.madewithlove.be оно преобразуется в
https://www.test.com/content.php?coId=11416wpPostId=41
это означает, что амперсанд заменяется на ‘416’.
Ответ №1:
Для этого вы можете использовать это простое правило:
RewriteRule ^blog/post/([^/] )/[w-] .html$ index.php?coId=11amp;wpPostId=$1 [QSA,L,NC]
Обязательно протестируйте его в новом браузере, чтобы избежать использования старого кэша браузера.