У меня есть сайт Drupal, site.com , и у нашего клиента есть рекламная кампания, для которой он купил новое доменное имя campaign.com ,Мне бы хотелось, чтобы запрос на campaign.com внутренне переписывался на определенной странице сайта Drupal.Примечание. Drupal использует файл .htaccess в корне документа.
Обычное переписывание Drupal:
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Я добавил следующее перед обычным переписыванием.
# Custom URLS (eg. microsites) go here
RewriteCond %{HTTP_HOST} =campaign.com
RewriteCond %{REQUEST_URI} =/
RewriteRule ^ index.php?q=node/22 [L]
К сожалению, это не работает, просто показывает домашнюю страницу.Включив журнал перезаписи, я получаю следующее.
1. [rid#2da8ea8/initial] (3) [perdir D:/wamp/www/] strip per-dir prefix: D:/wamp/www/ ->
2. [rid#2da8ea8/initial] (3) [perdir D:/wamp/www/] applying pattern '^' to uri ''
3. [rid#2da8ea8/initial] (2) [perdir D:/wamp/www/] rewrite '' -> 'index.php?q=node/22'
4. [rid#2da8ea8/initial] (3) split uri=index.php?q=node/22 -> uri=index.php, args=q=node/22
5. [rid#2da8ea8/initial] (3) [perdir D:/wamp/www/] add per-dir prefix: index.php -> D:/wamp/www/index.php
6. [rid#2da8ea8/initial] (2) [perdir D:/wamp/www/] strip document_root prefix: D:/wamp/www/index.php -> /index.php
7. [rid#2da8ea8/initial] (1) [perdir D:/wamp/www/] internal redirect with /index.php [INTERNAL REDIRECT]
8. [rid#2da7770/initial/redir#1] (3) [perdir D:/wamp/www/] strip per-dir prefix: D:/wamp/www/index.php -> index.php
9. [rid#2da7770/initial/redir#1] (3) [perdir D:/wamp/www/] applying pattern '^' to uri 'index.php'
10.[rid#2da7770/initial/redir#1] (3) [perdir D:/wamp/www/] strip per-dir prefix: D:/wamp/www/index.php -> index.php
11.[rid#2da7770/initial/redir#1] (3) [perdir D:/wamp/www/] applying pattern '^(.*)$' to uri 'index.php'
12.[rid#2da7770/initial/redir#1] (1) [perdir D:/wamp/www/] pass through D:/wamp/www/index.php
Я не привык к mod_rewrite, поэтому я могу что-то упустить, но сравниваю журналы от вызова до http://site.com/node/3 и от http://campaign.com/ Я не вижу значимой разницы.В частности, uri
и args
в строке 4 кажутся правильными, internal redirect
в строке 7 кажется правильным, а pass through
в строке 12 кажется правильным (поскольку файл index.php существует).Но по какой-то причине кажется, что строка запроса была отброшена / проигнорирована во время внутреннего перенаправления.Я полностью в замешательстве.
Кроме того, если кто-нибудь может дать ссылку на понимание журнала перезаписи, это может помочь.Было бы замечательно, если бы был способ отследить строку запроса с помощью внутреннего перенаправления.
FWIW Я использую WampServer 2.1 с Apache 2.2.17.