Во-первых, я думаю, что у вашего кода есть некоторые проблемы, поскольку вы устанавливаете эти переменные в результат isset()
, который является истинным или ложным. Кроме того, установка пустого значения для строки, когда вы включаете ее позже, является плохим планом, если вы хотите, чтобы слово null появлялось, используйте 'null'
, если ничего, тогда используйте пустую строку.
Это должно быть:
$id = (isset($_GET['msgid']) ? $_GET['msgid'] : '');
$from = (isset($_GET['from']) ? $_GET['from'] : '');
$body = (isset($_GET['content']) ? $_GET['content'] : '');
$status = (isset($_GET['status']) ? $_GET['status'] : '');
Заголовок Location
сообщит curl, что нужно перенаправить, что будет делать curl, если при вызове указана опция -L
. Обратите внимание, что Location
не поддерживает относительные URL, вам нужно указать полный URL, который я считаю.
Да, вы можете сделать это, используя mod_rewrite
в файле /intercept/.htaccess
, если строка запроса находится в правильном порядке и присутствуют все значения, возможно обрабатывать в произвольном порядке или пропуская записи, но более сложный.
RewriteEngine on
RewriteBase /intercept/
# Note, & may need escaping, can not recall
RewriteCond %{QUERY_STRING} ^id=([^&]+)&from=([^&]+)&content=([^&]+)&status=([^&]+)$
RewriteRule test.php /action/%1/%2/%3/%4 [L]
Если на том же сайте вы можете использовать [L]
, в противном случае укажите полный URL-адрес и вместо него используйте [R]
.