Vovic
Новичок
Не работает перезапись mod-rewrite, если нет доступа в исходную директорию
Пишу под виндой. Apache/2.0.55 (Win32).
DocumentRoot: "E:\WWW"
Структура папок:
E:\WWW
E:\WWW\phone
E:\WWW\public
Файлы:
в папке: E:\WWW\ - .htaccess и index.html
в папке: E:\WWW\pnone\ - .htaccess и index.php
в папке: E:\WWW\public\ - index.html и phone.html
Файл E:\WWW\.htaccess содержит:
RewriteEngine on
RewriteBase /
#Маршрутизация для внутренних сетй
RewriteCond %{REMOTE_ADDR} ^10\.11\.[0-9]{1,3}\.[0-9]{1,3}$ [NC]
RewriteRule ^()$ index.html [NC]
#Маршрутизация для внешних сетей
RewriteCond %{REMOTE_ADDR} !(10\.11\.[0-9]{1,3}\.[0-9]{1,3}) [NC]
RewriteRule ^phone/.*$ public/phone.html [R,L,NC]
RewriteCond %{REMOTE_ADDR} !(10\.11\.[0-9]{1,3}\.[0-9]{1,3}) [NC]
RewriteRule ^index\.html(.*)$ public/index.html$1 [NC]
RewriteCond %{REMOTE_ADDR} !(10\.11\.[0-9]{1,3}\.[0-9]{1,3}) [NC]
RewriteRule ^()$ public/index.html [NC]
Файл E:\WWW\phone\.htaccess содержит:
RewriteEngine Off
Order deny,allow
Deny from all
Allow from 10.11.16.
Allow from 10.11.24.
Allow from 127.0.0.
Что пытаемся сделать:
Пытаемся показывать разное содержимое пользователям из разных сетей.
1.Пользователи из внутренней сети по адресу http://mysite/ видят страницу
E:\WWW\index.html, а из внешней сети по тому же адресу видят страницу E:\WWW\public\index.html
2.Пользователи из внутренней сети по адресу http://mysite/phone/ видят страницу
E:\WWW\phone\index.php, а из внешней сети по тому же адресу видят страницу E:\WWW\public\phone.html
Первый пункт нормально работает. Со вторым пунктом есть проблема:
Пользователи из внутренней сети работают нормально, им, как и полагается,
показывается страница E:\WWW\phone\index.php, а вот пользователи внутренней
сети видят ошибку: Forbidden. You don't have permission to access /phone/ on this server.
Покопавшись пришёл к такому выводу: пользователям из внутренней сети
запрещён доступ к "http:/mysite/phone/" в файле "E:\WWW\phone\.htaccess".
По этой причине он не осуществляет перенаправление из этой папки.
То есть получается, что сначала апач проверит доступ к запрашиваемой директории,
и только ПОТОМ СЛУЧАЕ НАЛИЧИЯ ДОСТУПА к ней осуществит перезапись URL.
Требуется каким-то образом изменить его поведение, чтобы сразу перенаправлялся
в E:\WWW\public\phone.html, не проверяя права на доступ к Е:\WWW\phone\
Кто-нибудь решал такое?
Пишу под виндой. Apache/2.0.55 (Win32).
DocumentRoot: "E:\WWW"
Структура папок:
E:\WWW
E:\WWW\phone
E:\WWW\public
Файлы:
в папке: E:\WWW\ - .htaccess и index.html
в папке: E:\WWW\pnone\ - .htaccess и index.php
в папке: E:\WWW\public\ - index.html и phone.html
Файл E:\WWW\.htaccess содержит:
RewriteEngine on
RewriteBase /
#Маршрутизация для внутренних сетй
RewriteCond %{REMOTE_ADDR} ^10\.11\.[0-9]{1,3}\.[0-9]{1,3}$ [NC]
RewriteRule ^()$ index.html [NC]
#Маршрутизация для внешних сетей
RewriteCond %{REMOTE_ADDR} !(10\.11\.[0-9]{1,3}\.[0-9]{1,3}) [NC]
RewriteRule ^phone/.*$ public/phone.html [R,L,NC]
RewriteCond %{REMOTE_ADDR} !(10\.11\.[0-9]{1,3}\.[0-9]{1,3}) [NC]
RewriteRule ^index\.html(.*)$ public/index.html$1 [NC]
RewriteCond %{REMOTE_ADDR} !(10\.11\.[0-9]{1,3}\.[0-9]{1,3}) [NC]
RewriteRule ^()$ public/index.html [NC]
Файл E:\WWW\phone\.htaccess содержит:
RewriteEngine Off
Order deny,allow
Deny from all
Allow from 10.11.16.
Allow from 10.11.24.
Allow from 127.0.0.
Что пытаемся сделать:
Пытаемся показывать разное содержимое пользователям из разных сетей.
1.Пользователи из внутренней сети по адресу http://mysite/ видят страницу
E:\WWW\index.html, а из внешней сети по тому же адресу видят страницу E:\WWW\public\index.html
2.Пользователи из внутренней сети по адресу http://mysite/phone/ видят страницу
E:\WWW\phone\index.php, а из внешней сети по тому же адресу видят страницу E:\WWW\public\phone.html
Первый пункт нормально работает. Со вторым пунктом есть проблема:
Пользователи из внутренней сети работают нормально, им, как и полагается,
показывается страница E:\WWW\phone\index.php, а вот пользователи внутренней
сети видят ошибку: Forbidden. You don't have permission to access /phone/ on this server.
Покопавшись пришёл к такому выводу: пользователям из внутренней сети
запрещён доступ к "http:/mysite/phone/" в файле "E:\WWW\phone\.htaccess".
По этой причине он не осуществляет перенаправление из этой папки.
То есть получается, что сначала апач проверит доступ к запрашиваемой директории,
и только ПОТОМ СЛУЧАЕ НАЛИЧИЯ ДОСТУПА к ней осуществит перезапись URL.
Требуется каким-то образом изменить его поведение, чтобы сразу перенаправлялся
в E:\WWW\public\phone.html, не проверяя права на доступ к Е:\WWW\phone\
Кто-нибудь решал такое?