2016-10-17 3 views
1

Я размещаю свой сайт на godaddy и недавно приобрел сертификат SSL, поэтому я также могу запустить https-трафик. Тем не менее, я хочу, чтобы весь https-трафик переместился в определенную папку, к которой обычный http не может добраться. Кроме того, я не хочу, чтобы определенная папка была подпапкой основного корня http-документа.htaccess перенаправляет трафик https в определенную папку?

структура папок

GoDaddy Cpanel:

/home/myAccountFolder/ 
    /cache 
    /logs 
    /public_html 
    /private_html 
    ... 

По умолчанию, все стандартные HTTP трафик для «WWW» .foo.com будет идти в/public_html - но как я могу получить весь трафик для https://api.foo.com, чтобы отобразить на/private_html?

Мне сказали, что .htaccess может это сделать, но не может найти, как это сделать. Я знаю, что могу перенаправить https в/home/myAccountFolder/public_html/secure, но я хочу, чтобы он/home/myAccountFolder/private_html - совершенно другая корневая папка.

Кроме того, у меня нет доступа к конфигурации сервера или (что я знаю) есть возможность создавать/управлять виртуальными хостами в среде cPanel для GoDaddy. Все, что я могу сделать, это управлять каталогами и что входит в мой файл .htaccess.

+0

Без доступа для конфигурации сервера вы не можете использовать какой-либо путь вне 'DocumentRoot' – anubhava

+0

@anubhava bummer. Я думал, что это будет ответ. Думаю, мне нужно сделать/home/myAccountFolder/public_html/secure - но как я могу предотвратить трафик http-трафика в безопасную папку? В частности, я хочу, чтобы трафик, предназначенный для https://api.foo.com, имел доступ к папке/public_html/secure. Если он не входит в этот запрос хоста/домена, он не может попасть в эту папку. – rolinger

ответ

0

Внутри вашего корня сайта .htaccess вы можете использовать это правило для перенаправления api.foo.com в secure/ папку:

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^api\. [NC] 
RewriteRule !^api/ api%{REQUEST_URI} [L,NC] 

Внутри вашего api/.htaccess вы можете использовать это правило, чтобы только http://api.foo.com:

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^api\. [NC,OR] 
RewriteCond %{HTTPS} off 
RewriteRule^- [F] 

# rest of the rules 
+0

спасибо за это. Я тестирую различные URL-адреса, и до сих пор он выглядит как перенаправления. Однако в настоящее время https://www.foo.com перенаправляется на https://api.foo.com, а http://www.foo.com/api перенаправляется на https://api.foo.com/ api - возможно ли предотвратить перенаправление входящих запросов? Я хочу только запросы на https://api.foo.com, чтобы иметь возможность попасть в папку/api. – rolinger

+0

Что должно случиться, когда запрос приходит как 'http: // foo.com/api'? Должна ли она перенаправлять на 'http: // api.foo.com /' или должна вызывать 403? – anubhava

+0

Я бы хотел, чтобы это вызывало 403. Единственное, что я хочу получить в папке api, - это трафик, предназначенный для https://api.foo.com, «api». Я думаю, лучше уточнить, что только www для http, а api - для https. Таким образом, https://www.foo.com будет 403, а также http://api.foo.com. пытаясь предотвратить перекрестное опыление. :-) – rolinger

Смежные вопросы