Сделайте так, чтобы Apache показывал другой index.html также в адресной строке браузера - PullRequest
1 голос
/ 16 июня 2010

На моем сервере общего хостинга есть следующее дерево фолио:

www.somesite.com
|
|_ public_html (document folder)
    |_ .htaccess (Apache file)
    |_ index.html (page shown by server now when someone looks for www.somesite.com)
    |
    |_ site_editor (folder)
    |   |_login.html (site editor control panel)
    |   |_file1.php
    |   |_file2.php
    |   |_ ...
    |
    |_ website (folder)
        |_ index.html (website HOME PAGE)
        |_ page1.html
        |_ page2.html
        |_ etc.

Теперь, когда кто-то ищет www.somesite.com, веб-сервер ищет файл index.html в папке public_html.

  1. Я бы хотел, чтобы веб-сервер показывал website/index.html, когда кто-то ищет www.somesite.com , и я хотел бы, чтобы его панель браузера показывала только www.somesite.com/index.html а не www.somesite.com/website/index.html

  2. Я также хотел бы, чтобы веб-сервер показывал site_editor/login.html, когда кто-то ищет www.somesite.com/site_editor/

Можно ли выполнить обе задачи, настроив файлы .htaccess в некоторых отношениях ???

Спасибо!

1 Ответ

0 голосов
/ 16 июня 2010

Если я правильно понял, должно работать следующее, хотя я на самом деле не проверял:

RewriteEngine On
RewriteBase /
# Rewrite everything that's not site_editor or already rewritten
# to the website folder
RewriteRule !^site_editor(/.*)?$ -          [C]
RewriteRule !^website(/.*)?$     -          [C]
RewriteRule  ^(.*)$              website/$1 [PT,QSA,L]
# Rewrite a request to site_editor/ to site_editor/login.html
RewriteRule  ^site_editor/$      site_editor/login.html

Люди могут по-прежнему заходить на www.somesite.com/website/index.html, если захотят. Я думаю, что это может быть исправлено, но из-за того, как применяется .htaccess RewriteRules, сложно разобраться в этом. Если я вспомню, что это, я обновлю свой ответ.

...