#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] Спасибо