Я работаю в компании, у которой раньше было множество запутанных URL-адресов для статей, которые вам нужно было зарегистрировать, чтобы использовать. Таким образом, они будут иметь что-то вроде
/ story.php? Story_id = Z_ZXYZ
в котором был какой-то код, который отображал буквы в числа для определения истинного идентификатора истории
так
Z = 0
Y = 1
X = 2
и т.д.
Сейчас мы перемещаем стек технологий и решили, что запутанные URL-адреса не нужны. Поэтому я смотрю на то, можно ли обфусцировать URL-адреса с помощью mod rewrite
Пока у меня есть
RewriteCond %{REQUEST_URI} ^.*story.php [NC]
RewriteCond %{QUERY_STRING} ^.*story_id=Z_([ZXYWVUTSRQ]*) [NC]
RewriteRule ^.*$ /story/${decryptmap:%1} [L,R=301]
У меня есть карта перезаписи в файле httpd.conf
<IfModule mod_rewrite.c>
RewriteMap decryptmap txt:decyrpsdstxt
</IfModule>
Который имеет содержание
##
## decrypt urls
##
Z 0
X 1
и т.д .. * * 1023
но, похоже, он не работает, даже если я добавлю какой-то текст в Rewriterule, так что RewriteRule ^.*$ /story/${decryptmap:ZXY} [L,R=301]
Я получаю URL вроде /story/?story_id=Z_ZAD
Есть ли что-то очевидное, что я делаю не так? Я вижу, что эти два условия совпадают, но карта, похоже, не работает.
Должен ли я даже пытаться заставить мод переписать это? Я мог бы перенаправить на скрипт, который сделал это довольно легко, но это поместило бы код перенаправления в два места, которые мне не нравились.
(меня не волнует? Story_id = Z_ZAD, я знаю, как от этого избавиться)