Возможно ли в Apache или сценарии CGI определить, был ли запрос перенаправлен с домена xyz.com (перенаправление 301)?

У меня есть сценарий CGI, который иногда перенаправляет людей, прибывающих туда, с перенаправления 301 с URL-адреса в другом домене.

Я выполнил пробный запуск с http://default.jonathanscorner.com/project/redirector, чтобы перенаправление:

RewriteRule ^/project/redirector$ http://jonathanscorner.com/project/printenv.cgi [R=301,L]

http://jonathanscorner.com/project/printenv.cgi - это именно то, что предполагает его название:

#!/bin/bash
echo 'Content-type: text/plain'
echo ''
printenv

Переменные среды, напечатанные сценарием CGI, похоже, не ссылаются на исходный домен default.jonathanscorner.com:

SERVER_SIGNATURE=<address>Apache/2.2.16 (Debian) Server at jonathanscorner.com Port 80</address>

HTTP_USER_AGENT=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
SERVER_PORT=80
HTTP_HOST=jonathanscorner.com
DOCUMENT_ROOT=/home/cjsh/mirror
SCRIPT_FILENAME=/home/cjsh/mirror/project/printenv.cgi
REQUEST_URI=/project/printenv.cgi
SCRIPT_NAME=/project/printenv.cgi
SCRIPT_URI=http://jonathanscorner.com/project/printenv.cgi
HTTP_CONNECTION=keep-alive
REMOTE_PORT=54506
PATH=/usr/local/bin:/usr/bin:/bin
SCRIPT_URL=/project/printenv.cgi
PWD=/home/cjsh/mirror/project
[email protected]
HTTP_ACCEPT_LANGUAGE=en-US,en;q=0.8,fr;q=0.6
HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
REMOTE_ADDR=98.253.179.182
SHLVL=1
SERVER_NAME=jonathanscorner.com
SERVER_SOFTWARE=Apache/2.2.16 (Debian)
QUERY_STRING=
SERVER_ADDR=69.163.221.78
GATEWAY_INTERFACE=CGI/1.1
SERVER_PROTOCOL=HTTP/1.1
HTTP_ACCEPT_ENCODING=gzip,deflate,sdch
REQUEST_METHOD=GET
HTTP_COOKIE=__atuvc=10%7C25%2C10%7C26%2C5%7C27%2C33%7C28
_=/usr/bin/printenv

Не похоже, чтобы таким образом можно было получить нужную мне информацию.

Есть ли другие способы определить, было ли перенаправлено с определенного домена на новый домен? Если сайт xyz.com ссылается на http://default.jonathanscorner.com/project/redirector и который перенаправляет на http://jonathanscorner.com/project/printenv.cgi, с точки зрения Apache view - это домен реферера http://default.jonathanscorner.com/project/redirector или xyz .com URL?

Можно ли это сделать из конфигурации Apache?

Спасибо,


person Christos Hayward    schedule 12.07.2014    source источник


Ответы (1)


Если вы хотите установить домен статически (в следующем примере используется набор из 2 доменов), вы можете попробовать добавить следующее в .htaccess:

RewriteCond %{HTTP_HOST} ^www\.(domain1|domain2)(\.com)$ [NC]
RewriteRule ^(.*)$ /www.%1%2/$1 [L]
person Christopher Webb    schedule 12.07.2014