Использование переписывания мод Apache для изменения строки запроса - PullRequest
0 голосов
/ 28 августа 2018

Я знаю, что в моем htaccess можно использовать мод перезаписи

Возьмите:

http://example.com/directory/perlscript.pl?base64encodedquery=jhfkjdshfsdf78fs8y7sd8

Сделать более короткий URL:

http://example.com/? whatever just want to make it prettier

Входящие: я использую use CGI;, таким образом $qry->param('base64encodedquery')); Затем я использую use MIME::Base64 для декодирования строки запроса (закодированной ранее).

Мне не нужно кодировать и декодировать запрос, но я учусь и просто хочу замаскировать / скрыть строку запроса, содержащую до 15 коротких параметров.

Я склоняюсь к Perl-модулю, который сокращает URL-адреса, и я активно ищу. Я на самом деле не думаю, что мой закодированный запрос может быть использован с перезаписью модов. поэтому я также приму предложения по модулю.

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Поскольку вы намереваетесь использовать генерацию запросов к вашему Perl-скрипту, используя форму HTML в какой-то момент, это дает очень простое решение. Вы можете указать браузеру сделать HTTP-запрос POST вместо обычного HTTP-запроса GET, добавив атрибут method к тегу формы следующим образом.

<form method="POST" action="http://example.com/directory/perlscript.pl">
<input name="whatever"/>
</form>

Браузер отправит запрос "http://example.com/directory/perlscript.pl",, но не будет строки запроса - вместо этого данные формы передаются через STDIN. Но вам не нужно знать это как какую-либо инфраструктуру вы должны прозрачно обрабатывать это и предоставлять доступ к переданным параметрам точно так же, как если бы они были переданы через URL.

0 голосов
/ 28 августа 2018

Мне не ясно, что вам нужно сделать, но если вы просто хотите удалить путь и запрос из URL, вы можете использовать URI модуль

use strict;
use warnings 'all';
use feature 'say';

use URI;

my $url = URI->new('http://example.com/directory/perlscript.pl?base64encodedquery=jhfkjdshfsdf78fs8y7sd8');

say $url;

$url->path("/");
$url->query("");

say $url;

выход

http://example.com/directory/perlscript.pl?base64encodedquery=jhfkjdshfsdf78fs8y7sd8
http://example.com/?
...