2008-08-12 5 views
3

Надеюсь, я могу объяснить это достаточно ясно, но если не сообщите мне, и я попытаюсь разъяснить.mod_rewrite для псевдонима одного типа суффикса файла для другого

В настоящее время я разрабатываю сайт с использованием ColdFusion и применяю правило mod_rewrite, чтобы он выглядел так, как будто сайт использует PHP. Любые запросы для index.php обрабатываются index.cfm (правило отображает * .php на * .cfm).

Это прекрасно работает - до сих пор, так хорошо. Проблема в том, что я хочу вернуть код статуса 404, если запрашивается index.cfm (или любая страница ColdFusion).

Если я пытаюсь заблокировать доступ к файлам * .cfm с помощью mod_rewrite, он также возвращает 404 для запросов к * .php.

Я полагаю, что я, возможно, придется изменить свой Apache конфигурации, а не использовать .htaccess

ответ

1

Вы можете использовать S флаг пропустить 404 правило, как это:

RewriteEngine on 

# Do not separate these two rules so long as the first has S=1 
RewriteRule (.*)\.php$ $1.cfm [S=1] 
RewriteRule \.cfm$ - [R=404] 

Если вы также используете опцию Alias, то вы должны также добавить PT флаг. Подробности см. На странице mod_rewrite documentation.

0

Post правила, которые уже есть в качестве отправной точки, чтобы люди не должны воссоздать его, чтобы помочь вам.

Я бы предложил проверить [L] правило, которое отображает файлы .php в .cfm как первое, что нужно попробовать.

0

Вы должны использовать две различные группы правил перезаписи: одну для .php, другую для .chm и сделать их взаимоисключающими с RewriteCond% {REQUEST_FILENAME}. И используйте флаг [L], как было предложено jj33.

Вы можете сохранить свои правила в .htaccess.

 Смежные вопросы

  • Нет связанных вопросов^_^