|
|
|
|
|
для: .heed
(25.02.2010 в 17:42)
| | мне это нужно для создания многосайтовой системы... =) | |
|
|
|
|
автор: .heed (25.02.2010 в 17:42) |
|
|
для: nbid
(25.02.2010 в 12:52)
| | что-то я себе не могу придумать ситуацию когда вообще нужны такие перенаправления.
Если ещё как-то можно допустить что обращения ывают например к поддоменам wap или www, и поэтому нужно проверять http_host, то достаточно просто проверять на совпадение префикс.
Но само по себе можно просто при создании субдоменов указать какое document_root какие из них будут использовать, поэтому даже такой rewrite как-бы только лишние тормоза серверу, в conf можно сделать всё намного оптимальнее.
> какую нибудь другую переменную ....
, т.е. подзапрос выполнения и возврата значения между чтением htaccess и отдачей того что запрашивают?
Это вряд-ли. Можно просто установить глобальную переменную каким-нибудь SetEnv или SetEnvIf даже используя какие-нибудь условия.
разве-что какие-то модули типа mod_perl могут кое-чего позволять | |
|
|
|
|
|
|
|
для: .heed
(24.02.2010 в 21:42)
| | спасибо помогло :)
А еще другой вопрос: Можно ли как нибудь через .htaccess запускать php или perl скрипт, через который можно получить какие нибудь данные, с помощью которых можно перенаправлять.
А то так не удобно, если у сайта меняется домен то придется менять везде имя домена в настройках и имя самой папки
RewriteCond %{REQUEST_URI} !\/sites\/
RewriteRule ^(.*)$ sites/%{HTTP_HOST}/$1 [L]
Вот мне нужно вместо переменной %{HTTP_HOST} иметь какую нибудь другую переменную, с строчкой, полученной из другого php/perl файла. (желательно php).
Я читал о rewriteMap - это вроде то что нужно, но оно только в httpd.conf
И если никак нельзя, и rewriteMap это то что нужно, то как в httpd.conf разрешить юзать rewriteMap через htaccess? :) | |
|
|
|
|
автор: .heed (24.02.2010 в 21:42) |
|
|
для: nbid
(24.02.2010 в 17:22)
| | какое-нибудь
RewriteCond %{REQUEST_URI} !^/sites/
перед таким праилом возможно поможет | |
|
|
|
|
автор: .heed (24.02.2010 в 21:39) |
|
|
для: nbid
(24.02.2010 в 17:22)
| | RewriteRule ^([a-zA-Z0-9-./]*)$ sites/%{HTTP_HOST}/$1 [L] - тоже 500 ошибка, но
это правило которое будет зацикливаться, срабатывать при каждом следующем перенаправлении.
смотрите в error.log что стало причиной ответа 500 | |
|
|
|
|
|
|
| mod_rewrite, перенаправление всех файлов в другую папку
никак не могу сделать, например это самый бред:
RewriteRule ^([http://%{HTTP_HOST}/].*)$ sites/%{HTTP_HOST}/$1 [L]
http://mp/test/contacts.png - нормально перенаправляет
http://mp/uest/contacts.png - не перенаправляет, хотя там есть и папка test с файлом, и папка uest с файлом. что за бред? так со всеми папками которые начинаются на символ "u" и еще на символ "s", другие не проверял. Больше нечего в htaccess нет, БРЕД, объясните пожалуйста.
А так не не работает если попробовать зайти по адресу
http://mp/contacts.png (может тоже если в начале символ "с" то не будет работать)
далее:
RewriteRule ^(.*)$ sites/%{HTTP_HOST}/$1 [L]
самое простое и изящное, НУ ДОЛЖНО работать, а выдает 500 ошибку.
если пытаюсь написать так
RewriteRule ^([a-zA-Z0-9-./]*)$ sites/%{HTTP_HOST}/$1 [L] - тоже 500 ошибка, но
RewriteRule ^([a-zA-Z0-9-.]*)$ sites/%{HTTP_HOST}/$1 [L] - без ошибки, но открывает только корневые файлы, а если в адресе заюзать какую нибудь папку то не получается.
Такое ощущение что апач не дает просто юзать тупо папки, хотя дает, например те у которых имя начинается на символ t например, а вот на u и s не дает :), вот если бы не эта проблема то я бы мог замудрить всю тему. | |
|
|
|
|