2016-08-17 3 views
0

나는 폴더 외부 루트를 매핑하고 아파치의 conf 있습니다아파치는 특정 하위 폴더를 보여

Alias /salt "/var/cache/salt/master/minions" 

<Directory "/var/cache/salt/master/minions"> 
    Options Indexes MultiViews FollowSymLinks 
    Require all granted 
</Directory> 

이제 문제는 디렉토리 부하 내부에 많은 폴더가 있다는 것입니다 그리고 난 단지 특정을 표시 할 "cert"라는 폴더 어떻게해야합니까?

답변

0

나는 좋은 해결책을 찾을 수 없었지만, 어떻게 했는가? 필자는 필요한 파일 만 표시 할 수 있도록 index.php 페이지를 작성했습니다. 그것은 완벽한 해결책은 아니지만 어떻게 든 그것을해야했습니다. 또한 아파치 conf에서 디렉토리 색인을 변경해야했습니다.

별칭/소금 "은/var/캐시/소금/마스터/부하"

<Directory "/var/cache/salt/master/minions/"> 
    Options Indexes FollowSymLinks 
    Require all granted 
    DirectoryIndex index.php 
</Directory> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
<html> 
<head> 
    <title>Index of /salt</title> 
</head> 
<body> 
<?php 

function get_string_between($string, $start, $end){ 
    $string = ' ' . $string; 
    $ini = strpos($string, $start); 
    if ($ini == 0) return ''; 
    $ini += strlen($start); 
    $len = strpos($string, $end, $ini) - $ini; 
    return substr($string, $ini, $len); 
} 

$dir = new RecursiveDirectoryIterator(__DIR__); 
$flat = new RecursiveIteratorIterator($dir); 
$files = new RegexIterator($flat, '/\.pem$/i'); 
$relpath = array(); 
foreach($files as $file) { 
    $parsed = get_string_between($file, '/master/minions/', 'ssl_cert.pem'); 
    array_push($relpath,$parsed); 
} 
?> 
<h1>Index of /salt</h1> 
    <table> 
    <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=D;O=A">Description</a></th></tr> 
    <tr><th colspan="5"><hr></th></tr> 
<?php 
foreach ($relpath as &$value) { 
    echo "<tr><td valign='top'><img src='/icons/folder.gif' alt='[DIR]'></td><td><a href='$value'>$value</a></td><td align='right'> - </td><td>&nbsp;</td></tr>"; 
} 
?> 
    <tr><th colspan="5"><hr></th></tr> 
</table> 
<address>Apache/2.4.7 (Ubuntu) Server at 10.102.28.170 Port 90</address> 
</body></html> 
: 그것은 사람을 도움이된다면 여기

코드입니다
관련 문제