Добрый день!
Пытаюсь в файле
apache2/sites-available/domain.ru.conf настроить ЧПУ для всех поддоменов для ссылок вида:
subdomain.domain.ru/somePageName.html → subdomain.domain.ru/?page=somePageName
Требуется именно, чтобы сервер понимал запрос как приведено выше, а в адресной строке
сохранялся введенный текст.ЭТАП 1 (ПОПЫТКА 165)
Прописываю директивы:
RewriteCond %{REQUEST_URI} !([^/]*)\.html/$
RewriteRule ^/([^/]*)\.html$ /?page=$1 [L]
Получаю результаты в адресной строке (естественно, ничего не работает):
subdomain.domain.ru/news.html → subdomain.domain.ru/news.html/?page=newssubdomain.domain.ru/questions.html → subdomain.domain.ru/questions.html/?page=questionsЭТАП 2 (КОПАЕМ ДАЛЬШЕ, ПОПЫТКИ 166-289+)
Рассматриваю весь блок, анализирую:
ServerName domain.ru
ServerAlias *.domain.ru
ServerSignature Off
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.ru [NC]
RewriteRule ^/(.*) http://www.domain.ru/$1 [L,R] # до этого места включительно все работает
# вот, собственно, интересующий блок преобразований
RewriteCond %{HTTP_HOST} ^([a-z0-9_-]+)\.domain\.ru$ [NC]
RewriteRule ^(.*)\/([^/]*)\.html http://%1.domain.ru/?page=$2 [R,L]
Получаю результат немного отличный от того, что требовалось (адресная строка тоже заменяется):
subdomain.domain.ru/news.html → subdomain.domain.ru/?page=newssubdomain.domain.ru/questions.html → subdomain.domain.ru/?page=questions
Если убрать флаг
R, то страничка делает слишком много переадресаций и умирает.
ЭТАП 3 (ВОЗВРАЩЕНИЕ К НАЧАЛУ)
Код из этапа 1 решил немного модифицировать и работает так же, как и код из этапа 2:
# было:
# RewriteCond %{REQUEST_URI} !([^/]*)\.html/$
# RewriteRule ^/([^/]*)\.html$ /?page=$1 [L]
# поменял REQUEST_URI на REQUEST_FILENAME
# и добавил в RewriteRule флаг R
# стало:
RewriteCond %{REQUEST_FILENAME} !([^/]*)\.html/$
RewriteRule ^/([^/]*)\.html$ /?page=$1 [R,L]
Результат тот же, что и в Э.2:
subdomain.domain.ru/news.html → subdomain.domain.ru/?page=newssubdomain.domain.ru/questions.html → subdomain.domain.ru/?page=questions
Прошу помощи...