Переписать .php в .aff и обрабатывать .aff как php

#php #apache #.htaccess #rewrite

#php #apache #.htaccess #url-переписывание

Вопрос:

На моем веб-сайте у меня есть affiliates / папка.

Внутри этого у меня есть show&ames.php

Я хочу иметь возможность доступа к файлу как www.website.com/affiliates/show&ames.aff

Внутри папки affiliates я поместил этот .htaccess

 AddType application/x-httpd-php .php .aff
RewriteEn&ine on
RewriteBase /
RewriteRule ^(.*).php$ $1.aff [R=permanent]
  

По некоторым причинам это не работает .

Комментарии:

1. Это не работает, потому что вы переписываете его, чтобы переслать запрос их аналогам .aff. Но для того, чтобы это сработало, вам нужно изменить конфигурацию apache, чтобы зарегистрировать другие расширения и для интерпретатора PHP.

2. почему бы вам не сделать это так: RewriteRule ^(.*).aff(. )$ $1.php?$2 [L]

3. есть ли у apache зарегистрированное расширение .aff ?

Ответ №1:

Вы неправильно понимаете, что такое перезапись.

Вы говорите, что у вас есть /affiliates/show&ames.php страница, которая должна быть доступна как /affiliates/show&ames.aff . Это означает, что второй файл должен быть внутренне переписан в первый, когда его запрашивают, а не наоборот.

Это также означает, что вам не нужно интерпретировать .aff файлы как PHP-скрипты. Просто сделайте это в affiliates ‘ .htaccess:

 RewriteRule ^(.*).aff$ $1.php [QSA]
  

Комментарии:

1. не работает … что означают Q , S и A ? Я попытался добавить только эту строку в affiliates htaccess и не сработал

2. Смотрите httpd.apache.or&/docs/2.2/mod/mod_rewrite.html QSA означает «добавление строки запроса». Если это не сработало, возможно, вам нужно RewriteEn&ine on . В противном случае вы должны быть более конкретными, чем «не сработало»

3. Наконец-то у меня получилось, после добавления RewriteEn&ine в RewriteRule ^ (.*).aff $ $1.php [QSA] Спасибо