Это перенаправление определенного поддомена на основной домен для определенного файла.
Какую версию isapi_rewrite вы используете, v2 или v3?
Это предполагает v3:
RewriteCond %{HTTP:Host} ^subdomain\.(.*)$
RewriteRule ^(/foo/foofile3\.txt)$ http://%1$1 [NC,R=301]
RewriteCond проверяет хост, начинающийся с поддомена (и точки), и фиксирует оставшиеся (example.com) для удобства в правиле перезаписи. Вы также можете указать конкретный example.com, но это сделает его более общим.
Затем RewriteRule ищет конкретный файл /foo/foofile3.txt и фиксирует его (опять же для удобства, чтобы не повторять его в правиле). Результат имеет %1 для захвата в условии (example.com) и $1 для захвата в правиле (/foo/foofile3.txt).
NC не чувствителен к регистру, R=301 — это постоянное перенаправление.
В версии 3 параметры строки запроса обрабатываются автоматически, поэтому все, что находится после файла, сохраняется.
Другие возможности, которые делают его немного более сложным, — это вообще любой поддомен или шаблоны имен файлов вместо одного конкретного файла.
У меня были проблемы с кэшированием браузером моих попыток при правильном выполнении правила. Поэтому, несмотря на то, что я изменил правило, браузер закешировал мою предыдущую переадресацию. Мое быстрое решение состояло в том, чтобы подсчитать имя файла для новых URL-адресов: foofile2, foofile3 (думаю, я получил это с 3-й попытки...). Я мог бы каждый раз очищать кеш браузера; это было быстрее.
person
goodeye
schedule
24.07.2011