Назад | Перейти на главную страницу

.htaccess перенаправление для всех подкаталогов и файлов

У нас есть дочерний сайт domain.com/path/ad, и я хочу направить весь трафик в обработчик фреймворка. domain.com/path/index.cfm

Пока у меня есть

RewriteRule ^$ index.cfm [QSA,NS]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.cfm [R=permanent,L]

Он правильно перенаправляет / path / ad / other на /path/ad/index.cfm, если папка существует. Что мне нужно, чтобы он работал с несуществующими папками? Мне также нужно будет отслеживать исходный запрошенный файл / путь.

/path/ad/example1 => /path/ad/index.cfm?ad=example1

В .htaccess под /path

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule ^path/ad/(.+)$ path/index.cfm?ad=$1 [R=permanent,L]
</IfModule>

В начале своего вопроса вы написали, что хотите перенаправить на path/index.cfm, а в конце вы написали path/ad/index.cfm Я предполагаю, что вы имели в виду первое.

Один из способов сделать это - добавить скрипт index.xxx (например, index.php, если вы используете php). Apache запустит /path/index.php с / ad / example1 в переменных среды, если кто-то попытается посетить / path / ad / example1, а часть / ad / example1 не существует (при условии, что сервер настроен на использование index. xxx для индексации либо глобально, либо из .htaccess).

Поскольку это сценарий, его можно заставить выполнять все виды перенаправлений.

Это не лучшее решение, поскольку вам придется поддерживать перенаправления в двух местах, но если вы не найдете другого способа, вы можете попробовать его.