2013-12-06 7 views
0

Например,PHP содержит содержимое другого справочника

Мой сайт mywebsite.com. Public_html является основным каталогом, а внутри public_html есть папка sub_dir и файл index.php. sub_dir имеет следующие файлы:

index.php, profile.php, contact.php

Теперь я хочу public_html каталог действовать как sub_dir каталог. Например, если я нахожусь на public_html/index.php, он будет показывать содержимое public_html/sub_dir/index.php, не будучи перенаправленным туда. Если я посетил public_html/profile.php, он покажет содержимое public_html/sub_dir/profile.php.

Как это сделать?

+0

Включите 'sub_dir/index.php'; ** или ** использовать mod_rewrite/.htaccess для создания правила пересылки под капотом –

+0

Укажите ваш корневой каталог apache в subdir? – user2486495

+0

возможно 'include ('../ sub_dir/index.php')'? (если вы находитесь в public_html/index.php). WAIT. Откуда вы получаете контент? Предполагаю, что вы выбрали public_html в качестве корневого каталога. – briosheje

ответ

1

Edit:

Я только что видел ваш комментарий о делать это только с помощью PHP, потому что вы не можете изменить document_root Хотя я до сих пор думаю, что с помощью .htaccess бы лучшее решение, вы могли бы, конечно, сделать это только с помощью PHP , вот быстрый макет:

// Grab the URL parts 
$url = parse_url("http://stackoverflow.com/posts/20420420"); 

// Redirect the user to the same path in `sub_dir` 
header('Location: '. $url['scheme'] .'://'. $url['host'] .'/'. 'sub_dir'. $url['path']); 

Это перенаправлять пользователя http://stackoverflow.com/sub_dir/posts/20420420.

Другие люди предложили использовать include(), вы можете совместить это с моей parse_url() выше примере динамически называют include(), чтобы загрузить файл с sub_dir.


Я вижу несколько способов сделать это ...

Вы можете использовать header() функцию PHP, но это не будет действительно идеальным.

Вы также можете использовать .htaccess, что-то вроде:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_URI} !^sub_dir 
    RewriteRule ^(.*)$ sub_dir/$1 [L] 
</IfModule> 

Если вы поместили это в public_html запросов будет передан sub_dir. Поэтому, если вы попросили example.com/test.php, вы действительно загрузите example.com/sub_dir/test.php.

Какая у вас настройка хостинга? В зависимости от вашей среды вы также можете изменить свои веб-серверы document_root ...

0

Есть несколько способов сделать это.

  1. Использование include()

В файле public_html/index.php

<?php include_once 'sub_dir/index.php';?> 
  1. Использование file_get_content()

В файле public_html/индекс.php

<?php echo file_get_content('sub_dir/index.php');// Show as text?> 
Смежные вопросы