[0001]
[0002]
[0003]
[0004]
[0005]
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079]
[0080]
[0081]
[0082]
[0083]
[0084]
[0085]
[0086]
[0087]
[0088]
[0089]
[0090]
[0091]
[0092]
[0093]
[0094]
[0095]
[0096]
[0097]
[0098]
[0099]
[0100]
[0101]
[0102]
[0103]
[0104]
[0105]
[0106]
[0107]
[0108]
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
[0115]
[0116]
[0117]
[0118]
[0119]
[0120]
[0121]
[0122]
[0123]
[0124]
[0125]
[0126]
[0127]
[0128]
[0129]
[0130]
[0131]
[0132]
[0133]
[0134]
[0135]
[0136]
[0137]
[0138]
[0139]
[0140]
[0141]
[0142]
[0143]
[0144]
[0145]
[0146]
[0147]
[0148]
[0149]
[0150]
[0151]
[0152]
[0153]
[0154]
[0155]
[0156]
[0157]
[0158]
[0159]
[0160]
[0161]
[0162]
[0163]
[0164]
[0165]
[0166]
[0167]
[0168]
[0169]
[0170]
[0171]
[0172]
[0173]
[0174]
[0175]
[0176]
[0177]
[0178]
[0179]
[0180]
[0181]
[0182]
[0183]
[0184]
[0185]
[0186]
[0187]
[0188]
[0189]
[0190]
[0191]
[0192]
[0193]
[0194]
[0195]
[0196]
[0197]
[0198]
[0199]
[0200]
[0201]
[0202]
[0203]
[0204]
[0205]
[0206]
[0207]
[0208]
[0209]
[0210]
[0211]
[0212]
[0213]
[0214]
[0215]
[0216]
[0217]
[0218]
[0219]
[0220]
[0221]
[0222]
[0223]
[0224]
[0225]
[0226]
[0227]
[0228]
[0229]
[0230]
[0231]
[0232]
[0233]
[0234]
[0235]
[0236]
[0237]
[0238]
[0239]
[0240]
[0241]
[0242]
[0243]
[0244]
[0245]
[0246]
[0247]
[0248]
[0249]
[0250]
[0251]
[0252]
[0253]
[0254]
[0255]
[0256]
[0257]
[0258]
[0259]
[0260]
[0261]
[0262]
[0263]
[0264]
[0265]
[0266]
[0267]
[0268]
[0269]
[0270]
[0271]
[0272]
[0273]
[0274]
[0275]
[0276]
[0277]
[0278]
[0279]
[0280]
[0281]
[0282]
[0283]
[0284]
[0285]
[0286]
[0287]
[0288]
[0289]
[0290]
[0291]
[0292]
[0293]
[0294]
[0295]
[0296]
[0297]
[0298]
[0299]
[0300]
[0301]
[0302]
[0303]
[0304]
[0305]
[0306]
[0307]
[0308]
[0309]
[0310]
[0311]
[0312]
[0313]
[0314]
[0315]
[0316]
[0317]
[0318]
[0319]
[0320]
[0321]
[0322]
[0323]
[0324]
[0325]
[0326]
[0327]
[0328]
[0329]
[0330]
[0331]
[0332]
[0333]
[0334]
[0335]
[0336]
[0337]
[0338]
[0339]
[0340]
[0341]
[0342]
[0343]
[0344]
[0345]
[0346]
[0347]
[0348]
[0349]
[0350]
[0351]
[0352]
[0353]
[0354]
[0355]
[0356]
[0357]
[0358]
[0359]
[0360]
[0361]
[0362]
[0363]
[0364]
[0365]
[0366]
[0367]
[0368]
[0369]
[0370]
[0371]
[0372]
[0373]
[0374]
[0375]
[0376]
[0377]
[0378]
[0379]
[0380]
[0381]
[0382]
[0383]
[0384]
[0385]
[0386]
[0387]
[0388]
[0389]
[0390]
[0391]
[0392]
[0393]
[0394]
[0395]
[0396]
[0397]
[0398]
[0399]
[0400]
[0401]
[0402]
[0403]
[0404]
[0405]
[0406]
[0407]
[0408]
[0409]
[0410]
[0411]
[0412]
[0413]
[0414]
[0415]
[0416]
[0417]
[0418]
[0419]
[0420]
[0421]
[0422]
[0423]
[0424]
[0425]
[0426]
[0427]
[0428]
[0429]
[0430]
[0431]
[0432]
[0433]
[0434]
[0435]
[0436]
[0437]
[0438]
[0439]
[0440]
[0441]
[0442]
[0443]
[0444]
[0445]
[0446]
[0447]
[0448]
[0449]
[0450]
[0451]
[0452]
[0453]
[0454]
[0455]
[0456]
[0457]
[0458]
[0459]
[0460]
[0461]
[0462]
[0463]
[0464]
[0465]
[0466]
[0467]
[0468]
[0469]
[0470]
[0471]
[0472]
[0473]
[0474]
[0475]
[0476]
[0477]
[0478]
[0479]
[0480]
[0481]
[0482]
[0483]
[0484]
[0485]
[0486]
[0487]
[0488]
[0489]
[0490]
[0491]
[0492]
[0493]
[0494]
[0495]
[0496]
[0497]
[0498]
[0499]
[0500]
[0501]
[0502]
[0503]
[0504]
[0505]
[0506]
[0507]
[0508]
[0509]
[0510]
[0511]
[0512]
[0513]
[0514]
[0515]
[0516]
[0517]
[0518]
[0519]
[0520]
[0521]
[0522]
[0523]
[0524]
[0525]
[0526]
[0527]
[0528]
[0529]
[0530]
[0531]
[0532]
[0533]
[0534]
[0535]
[0536]
[0537]
[0538]
[0539]
[0540]
[0541]
[0542]
[0543]
[0544]
[0545]
[0546]
[0547]
[0548]
[0549]
[0550]
[0551]
[0552]
[0553]
[0554]
[0555]
[0556]
[0557]
[0558]
[0559]
[0560]
[0561]
[0562]
[0563]
[0564]
[0565]
[0566]
[0567]
[0568]
[0569]
[0570]
[0571]
[0572]
[0573]
[0574]
[0575]
[0576]
[0577]
[0578]
[0579]
[0580]
[0581]
[0582]
[0583]
[0584]
[0585]
[0586]
[0587]
[0588]
[0589]
[0590]
[0591]
[0592]
[0593]
[0594]
[0595]
[0596]
[0597]
[0598]
[0599]
[0600]
[0601]
[0602]
[0603]
[0604]
[0605]
[0606]
[0607]
[0608]
[0609]
[0610]
[0611]
[0612]
[0613]
[0614]
[0615]
[0616]
[0617]
[0618]
[0619]
[0620]
[0621]
[0622]
[0623]
[0624]
[0625]
[0626]
[0627]
[0628]
[0629]
[0630]
[0631]
[0632]
[0633]
[0634]
[0635]
[0636]
[0637]
[0638]
[0639]
[0640]
[0641]
[0642]
[0643]
[0644]
[0645]
[0646]
[0647]
[0648]
[0649]
[0650]
[0651]
[0652]
[0653]
[0654]
[0655]
[0656]
[0657]
[0658]
[0659]
[0660]
[0661]
[0662]
[0663]
[0664]
[0665]
[0666]
[0667]
[0668]
[0669]
[0670]
[0671]
[0672]
[0673]
[0674]
[0675]
[0676]
[0677]
[0678]
[0679]
[0680]
[0681]
[0682]
[0683]
[0684]
[0685]
[0686]
[0687]
[0688]
[0689]
[0690]
[0691]
[0692]
[0693]
[0694]
[0695]
[0696]
[0697]
[0698]
[0699]
[0700]
[0701]
[0702]
[0703]
[0704]
[0705]
[0706]
[0707]
[0708]
[0709]
[0710]
[0711]
[0712]
[0713]
[0714]
[0715]
[0716]
[0717]
[0718]
[0719]
[0720]
[0721]
[0722]
[0723]
[0724]
[0725]
[0726]
[0727]
[0728]
[0729]
[0730]
[0731]
[0732]
[0733]
[0734]
[0735]
[0736]
[0737]
[0738]
[0739]
[0740]
[0741]
[0742]
[0743]
[0744]
[0745]
[0746]
[0747]
[0748]
[0749]
[0750]
[0751]
[0752]
[0753]
[0754]
[0755]
[0756]
[0757]
[0758]
[0759]
[0760]
[0761]
[0762]
[0763]
[0764]
[0765]
[0766]
[0767]
[0768]
[0769]
[0770]
[0771]
[0772]
[0773]
[0774]
[0775]
[0776]
[0777]
[0778]
[0779]
[0780]
[0781]
[0782]
[0783]
[0784]
[0785]
[0786]
[0787]
[0788]
[0789]
[0790]
[0791]
[0792]
[0793]
[0794]
[0795]
[0796]
[0797]
[0798]
[0799]
[0800]
[0801]
[0802]
[0803]
[0804]
[0805]
[0806]
[0807]
[0808]
[0809]
[0810]
[0811]
[0812]
[0813]
[0814]
[0815]
[0816]
[0817]
[0818]
[0819]
[0820]
[0821]
[0822]
[0823]
[0824]
[0825]
[0826]
[0827]
[0828]
[0829]
[0830]
[0831]
[0832]
[0833]
[0834]
[0835]
[0836]
[0837]
[0838]
[0839]
[0840]
[0841]
[0842]
[0843]
[0844]
[0845]
[0846]
[0847]
[0848]
[0849]
[0850]
[0851]
[0852]
[0853]
[0854]
[0855]
[0856]
[0857]
[0858]
[0859]
[0860]
[0861]
[0862]
[0863]
[0864]
[0865]
[0866]
[0867]
[0868]
[0869]
[0870]
[0871]
[0872]
[0873]
[0874]
[0875]
[0876]
[0877]
[0878]
[0879]
[0880]
[0881]
[0882]
[0883]
[0884]
[0885]
[0886]
[0887]
[0888]
[0889]
[0890]
[0891]
[0892]
[0893]
[0894]
[0895]
[0896]
[0897]
[0898]
[0899]
[0900]
[0901]
[0902]
[0903]
[0904]
[0905]
[0906]
[0907]
[0908]
[0909]
[0910]
[0911]
[0912]
[0913]
[0914]
[0915]
[0916]
[0917]
[0918]
[0919]
[0920]
[0921]
[0922]
[0923]
[0924]
[0925]
[0926]
[0927]
[0928]
[0929]
[0930]
[0931]
[0932]
[0933]
[0934]
[0935]
[0936]
[0937]
[0938]
[0939]
[0940]
[0941]
[0942]
[0943]
[0944]
[0945]
[0946]
[0947]
[0948]
[0949]
[0950]
[0951]
[0952]
[0953]
[0954]
[0955]
[0956]
[0957]
[0958]
[0959]
[0960]
[0961]
[0962]
[0963]
[0964]
[0965]
[0966]
[0967]
[0968]
[0969]
[0970]
[0971]
[0972]
[0973]
[0974]
[0975]
[0976]
[0977]
[0978]
[0979]
[0980]
[0981]
[0982]
[0983]
[0984]
[0985]
[0986]
[0987]
[0988]
[0989]
[0990]
[0991]
[0992]
[0993]
[0994]
[0995]
[0996]
[0997]
[0998]
[0999]
[1000]
[1001]
[1002]
[1003]
[1004]
[1005]
[1006]
[1007]
[1008]
[1009]
[1010]
[1011]
[1012]
[1013]
[1014]
[1015]
[1016]
[1017]
[1018]
[1019]
[1020]
[1021]
[1022]
[1023]
[1024]
[1025]
[1026]
[1027]
[1028]
[1029]
[1030]
[1031]
[1032]
[1033]
[1034]
[1035]
[1036]
[1037]
[1038]
[1039]
[1040]
[1041]
[1042]
[1043]
[1044]
[1045]
[1046]
[1047]
[1048]
[1049]
[1050]
[1051]
[1052]
[1053]
[1054]
[1055]
[1056]
[1057]
[1058]
[1059]
[1060]
[1061]
[1062]
[1063]
[1064]
[1065]
[1066]
[1067]
[1068]
[1069]
[1070]
[1071]
[1072]
[1073]
[1074]
[1075]
[1076]
[1077]
[1078]
[1079]
[1080]
[1081]
[1082]
[1083]
[1084]
[1085]
[1086]
[1087]
[1088]
[1089]
[1090]
[1091]
[1092]
[1093]
[1094]
[1095]
[1096]
[1097]
[1098]
[1099]
[1100]
[1101]
[1102]
[1103]
[1104]
[1105]
[1106]
[1107]
[1108]
[1109]
[1110]
[1111]
[1112]
[1113]
[1114]
[1115]
[1116]
[1117]
[1118]
[1119]
[1120]
[1121]
[1122]
[1123]
[1124]
[1125]
[1126]
[1127]
[1128]
[1129]
<!DOCTYPE html>
<!-- WASDOC AXP-2.0.0 (CGILIB AXP-1.9.9) -->
<!-- wasDOC Copyright (C) 2019,2020 Mark G.Daniel - Apache-2.0 licenced -->
<!--  3-NOV-2021 02:50 -->
<noscript>NOTE: SOME FUNCTIONALITY EMPLOYS JAVASCRIPT</noscript>
<div id="erreport1" style="display:none;"></div>
<script>
function errorReport(string) {
   for (var cnt = 1; cnt <= 2; cnt++) {
      var err = document.getElementById('erreport'+cnt);
      err.style.display = 'block';
      err.innerHTML += string;
   }
}
</script>
<style type="text/css">
html { font-family: arial, verdana, sans-serif; font-size:12pt; margin:1em; }
h1 { font-size:124%; font-style:bold;
     margin-top:1em; margin-bottom:0.5em; }
h2 { font-size:120%; font-style:bold;
     margin-top:1.1em; margin-bottom:0.4em; }
h3 { font-size:116%; font-style:bold;
     margin-top:1.0em; margin-bottom:0.3em; }
h4 { font-size:112%; font-style:bold;
     margin-top:1.1em; margin-bottom:0.3em; }
h5 { font-size:112%; font-style:bold; 
     margin-top:1.1em; margin-bottom:0.3em; }
h6 { font-size:112%; font-style:bold; padding:0; margin:0; }

h1 .text { text-decoration:underline; }
h1 .numb { padding-right:0.8em; }
h1 .numb:empty { display:none; padding-right:0; }
h2 .numb { padding-right:0.8em; }
h2 .numb:empty { display:none; padding-right:0; }
h3 .numb { padding-right:0.8em; }
h3 .numb:empty { display:none; padding-right:0; }
h4 .numb { padding-right:0.8em; }
h4 .numb:empty { display:none; padding-right:0; }
h5 .numb { display:none; padding-right:0; }
h6 .numb { display:none; padding-right:0; }

kbd { font-family:monospace; }

noscript { font-size:1.2em; }

p { line-height:1.1em; margin-top:1em; margin-bottom:1em; }

.chunk { font-size:130%; text-decoration:underline; }
.head {}
.high {}
.bold { font-weight:bold; }
.center { text-align:center; }
.italic { font-style:italic; }
.left { text-align:left; }
.nowrap { white-space:nowrap; }
.prewrap { white-space:pre; }
.right { text-align:right; }
.strike { text-decoration:line-through; }
.under { text-decoration:underline; }

.backlight { background-color:#f2f2f2; }
.display0 { display:none; }

img { max-width:100%; }
.imglink { }

.link { }
.blank { }

.list { margin-bottom:1em; }
.list li { margin-top:0.5em; }
.list0 li { margin-top:0; }
.item {}

.tabl { border-collapse:collapse; text-align:left; margin:0.4em 2em 0.5em 2em; }
.tabu { border-collapse:collapse; text-align:right; margin:0.4em 2em 0.5em 2em; }

.tabr { vertical-align:top; }
.tabh { padding:0.2em 0 0 2em; margin:0; }
.tabd { padding:0.1em 0 0 2em; margin:0; }
.tabh:first-of-type, td:first-of-type { padding-left:0; }

.tabu .tabh,
.tabu .tabd { border:1px solid gray; padding:0.2em 0.3em 0.2em 0.3em; }
.tab0 { border:none; visibility:hidden; max-width:1em; 
        white-space:nowrap; overflow:hidden; }

.tabauto { margin-left:auto; margin-right:auto; }

.tabr:empty { height:0.2em; }
.tabu .tabh:empty, .tabu .tabd:empty { border:none; visibility:hidden; }

.error { font-size:110%; color:black; background-color:yellow;
         font-family:sans-serif; font-weight:bold; font-style:normal;
         width:95%; border:solid 1px gray; padding:0.5em 1em 0.5em 1em; }
.error::before { content:'\026a0\00a0'; }
.image { }
.page { width:98%; border:1px dashed gray; margin:1.5em 0 1.8em 0; }
.epage { width:98%; border:1px dashed black; margin:1.5em 0 1.8em 0; }
.monosp { font-family:monospace; }
.ppage { display:none; }
.simple { list-style-type:none; }
.valtop { vertical-align:top; }
.valmid { vertical-align:middle; }
.valbot { vertical-align:bottom; }

.code { border-style:solid; border-width:0 0 0 1px; padding-left:1em;
        font-family:monospace; white-space:pre; }
.block { }
.blockof { margin:0.4em 2em 0.5em 2em; }
.example { border-style:dashed; border-width:0 0 0 1px; padding-left:1em;
           margin-top:0.5em; margin-bottom:0.5em; white-space:pre; }
.indent { margin-left:2em; margin-right:2em; }
.noindent { margin-left:0; margin-right:0; }
.inblock { display:inline-block; }
.mono { white-space:pre; font-family:monospace; }
.note { margin:0.4em 2em 0.5em 2em; page-break-inside:avoid; }
.note h5 { margin-top:0 }
.note_hr { width:80%; border:1px solid gray; }
.prop { padding-left:1em; margin-top:0.5em; margin-bottom:0.5em; }
.quote { border-style:dashed; border-width:0 0 0 1px; padding-left:1em;
         margin-top:0.5em; margin-bottom:0.5em; }
.this { display:none; }

a:link,a:visited { color:black; text-decoration:none; }
a:hover,a:active { text-decoration:underline; }
a:focus { outline:0; } 

:target:before { content:''; display:block; height:0.1em; margin:-0.1em; }
a.link:link, a.link:visited,a.link:active 
{ color:midnightBlue; text-decoration:underline; text-decoration-style:solid; }

.TOC1cols1 { width:80%; max-width:80%; }
.TOC1cols2 { column-count:2; width:80%; max-width:80%; }
.TOC1cols3 { column-count:3; max-width:90%; max-width:90%; }
.TOC1cols4 { column-count:4; max-width:100%; max-width:100%; }
.TOC1table { margin-left:2em; white-space:nowrap; break-inside:auto; }
.TOC1table tr { vertical-align:top; text-align:left; break-inside:avoid; break-after:auto; }
.TOC1table td+td { padding:0 0 0 0.5em; }
.TOC1table .numb { width:3em; max-width:3em; }
.TOC1table .sepr { width:5em; max-width:6em; overflow:hidden; }
.TOC1table .majr { font-weight:bold; }
.TOC1table .text { white-space:normal; }

/* These are due to Firefox (at least <= 76) recalcitrant multi-column handling.
   Web search "Split table into css columns, issue in Firefox" (stackoverflow).
   "Good grief, Charlie Brown!" */
 
.TOC1cols2 table,
.TOC1cols2 tbody,
.TOC1cols2 tr,
.TOC1cols3 table,
.TOC1cols3 tbody,
.TOC1cols3 tr,
.TOC1cols4 table,
.TOC1cols4 tbody,
.TOC1cols4 tr { display:block; padding:0; }

.TOC2cols1 { width:60%; max-width:60%; }
.TOC2cols2 { column-count:2; width:70%; max-width:70%; }
.TOC2cols3 { column-count:3; width:80%; max-width:80%; }
.TOC2cols4 { column-count:4; width:90%; max-width:90%; }
.TOC2table { margin-left:2em; white-space:nowrap; break-inside:auto; }
.TOC2table tr { vertical-align:top; text-align:left; break-inside:avoid; break-after:auto; }
.TOC2table .numb { font-weight:bold; padding-right:0.5em; }
.TOC2table .text { width:100%; white-space:normal; }

/* see "recalcitrant" above */
.TOC2cols2 table,
.TOC2cols2 tbody,
.TOC2cols2 tr,
.TOC2cols3 table,
.TOC2cols3 tbody,
.TOC2cols3 tr,
.TOC2cols4 table,
.TOC2cols4 tbody,
.TOC2cols4 tr { display:block; padding:0; }

.NAVtable { margin:0.1em 0 0 2em; }
.NAVtable td { font-size:110%; font-weight:bold; padding:0; margin:0; }
.NAVtable a { padding:0 0.5em 0 0.5em; text-decoration:none; }

.IDXcols1 { width:80%; max-width:80%; }
.IDXcols2 { column-count:2; width:90%; max-width:90%; }
.IDXcols3 { column-count:3; width:95%; max-width:95%;  }
.IDXcols4 { column-count:4; width:100%; max-width:100%;  }
.IDXtable { margin:1em 0 1em 2em; white-space:nowrap; break-inside:auto; }
.IDXtable tr { vertical-align:top; text-align:left; break-inside:avoid; break-after:auto; }
.IDXtable .alpha { font-weight:bold; min-width:2em; }
.IDXtable .text  { width:100%; white-space:normal; }
.IDXtable .para:before { content:'\00b6\00a0'; }

/* see "recalcitrant" above */
.IDXcols2 table,
.IDXcols2 tbody,
.IDXcols2 tr,
.IDXcols3 table,
.IDXcols3 tbody,
.IDXcols3 tr,
.IDXcols4 table,
.IDXcols4 tbody,
.IDXcols4 tr { display:block; padding:0; }

.insight { background-color:cyan; font-family:monospace;
           padding:0 0.2em 0 0.2em; margin:0 0.2em 0 0.2em;
           font-size:100%; font-style:normal; font-weight:normal;
           text-decoration:none; }

.wasdoc { font-family: "Lucida Console", Monaco, monospace; 
          letter-spacing:-0.07em; }

@media screen { .blank::after { content:"\2924"; } 
                .print { display:none; }
}

@media print {
   table { page-break-inside:avoid; }
   .noprint { display:none; }
   .page { border:none; page-break-after: always; }
   .epage { display:none; }
   .ppage { page-break-after:always; }
   .NAVtable { display:none; }
   .NAVprint { display:block!important; }
}

@page { margin:2cm 1cm 2cm 1cm;  }
</style>
<!-- source:0000_env.wasdoc -->

<style type="text/css">._smiley::after { font-size:150%; vertical-align:middle; content:'\263a' }</style>
<style type="text/css">._frowny::after { font-size:150%; vertical-align:middle; content:'\2639' }</style>

<a id="0." href="#"></a>
<title>WASD Web Environment &ndash; Directory Listing</title>
<a id="3." href="#"></a>
<a id="3.directorylisting" href="#"></a>
<a id="directorylisting" href="#"></a>
<h1 class="head chunk">WASD Web Environment</h1>
<h1 class="head"><span class="numb">3.</span><span class="text">Directory Listing</span></h1>

<div class="TOC2cols2">
<table class="TOC2table">
<tr><td><a href="env003.html#3.1.controllingaccesstoadirectory"><span class="numb">3.1</span><span class="text">Controlling Access To A Directory</span></a>
<tr><td><a href="env003.html#3.2.quothiddenquotfiles"><span class="numb">3.2</span><span class="text">&quot;Hidden&quot; Files</span></a>
<tr><td><a href="env003.html#3.3.serverdirectives"><span class="numb">3.3</span><span class="text">Server Directives</span></a>
<tr><td><a href="env003.html#3.3.1.wwwwasd"><span class="numb">3.3.1</span><span class="text">.WWW_WASD</span></a>
<tr><td><a href="env003.html#3.3.2.layout"><span class="numb">3.3.2</span><span class="text">Layout</span></a>
<tr><td><a href="env003.html#3.3.3.directorystyle"><span class="numb">3.3.3</span><span class="text">Directory Style</span></a>
<tr><td><a href="env003.html#3.3.4.selectivelisting"><span class="numb">3.3.4</span><span class="text">Selective Listing</span></a>
<tr><td><a href="env003.html#3.3.5.listingtitle"><span class="numb">3.3.5</span><span class="text">Listing Title</span></a>
<tr><td><a href="env003.html#3.3.6.listingfont"><span class="numb">3.3.6</span><span class="text">Listing Font</span></a>
<tr><td><a href="env003.html#3.3.7.fileversions"><span class="numb">3.3.7</span><span class="text">File Versions</span></a>
<tr><td><a href="env003.html#3.3.8.readmefiles"><span class="numb">3.3.8</span><span class="text">Readme Files</span></a>
<tr><td><a href="env003.html#3.3.9.listingdelimiters"><span class="numb">3.3.9</span><span class="text">Listing Delimiters</span></a>
<tr><td><a href="env003.html#3.3.10.suppressingdirectories"><span class="numb">3.3.10</span><span class="text">Suppressing Directories</span></a>
<tr><td><a href="env003.html#3.3.11.listingrefreshandexpiry"><span class="numb">3.3.11</span><span class="text">Listing Refresh and Expiry</span></a>
<tr><td><a href="env003.html#3.3.12.scriptingfromdirectorylistings"><span class="numb">3.3.12</span><span class="text">Scripting From Directory Listings</span></a>
<tr><td><a href="env003.html#3.3.13.autoscripting"><span class="numb">3.3.13</span><span class="text">Auto-Scripting</span></a>
<tr><td><a href="env003.html#3.3.14.targetwindow"><span class="numb">3.3.14</span><span class="text">Target Window</span></a>
<tr><td><a href="env003.html#3.3.15.specifyingcontenttype"><span class="numb">3.3.15</span><span class="text">Specifying Content-Type</span></a>
<tr><td><a href="env003.html#3.3.16.iconplaintextlink"><span class="numb">3.3.16</span><span class="text">Icon Plain Text Link</span></a>
<tr><td><a href="env003.html#3.3.17.querystring"><span class="numb">3.3.17</span><span class="text">Query String</span></a>
<tr><td><a href="env003.html#3.3.18.allowingoverride"><span class="numb">3.3.18</span><span class="text">Allowing Override</span></a>
<tr><td><a href="env003.html#3.4.directorytree"><span class="numb">3.4</span><span class="text">Directory Tree</span></a>
</table>
</div>

<table class="NAVtable NAVprint"><tr>
<td><a href="javascript:window.history.back();">&#8617;&#xFE0E;</a>
<td><a href="env002.html#2.">&#8598;&#xFE0E;</a>
<td><a href="env000.html#0.">&#8593;&#xFE0E;</a>
<td><a href="env004.html#4.">&#8600;&#xFE0E;</a>
<td><a href="javascript:window.history.forward();">&#8618;&#xFE0E;</a>
</table>

<p> A directory listing is sometimes refered to as a document  <span class="high italic">Index</span>, and is
generally titled &quot;Index of &hellip;&quot;. 

<p> Unless disabled by the server's configuration, a directory listing is 
recognised by the server whenever a wildcard is present in a specification and 
there is no query string directing another activity (e.g. a document search).  
Compliant with other web implementations, a directory listing is also 
generated if a URL specifies a directory only and that directory contains no 
home page. 

<p> <span class="high bold">All specifications must be made using URL-style paths.</span>
See <a class="link" href="env002.html#2.3.documentspecification">2.3 Document Specification</a>.

<p> The directory listing is designed to look very much like the basic layout 
of other servers, except that all directories are grouped at the top.  In the 
opinion of the author, this looks and functions better than when interspersed
with the files, as is otherwise common.  The default listing provides: 

<ul class="list simple list0">
<li class="item"> iconic indication of the data type
<li class="item"> file name
<li class="item"> last revison date/time
<li class="item"> size
<li class="item"> description
</ul>

<p> The description can be either just that, a description of the role of that
type of file under VMS, or if presented within quotes, an HTML document's own
internal description taken from the &quot;&lt;title&gt;&lt;/title&gt;&quot; element.

<p> Note that directory listings only processes the physical file system.  
This may or may not correspond to the web environment's virtual mappings. 

<p> The following link illustrates the directory listing format:
<a class="link blank" target="_blank" href="/wasd_root/wasdoc/*.*">/wasd_root/wasdoc/*.*</a>

<a id="3.0.0.0.1" href="#"></a>
<a id="3.vmsishformat" href="#"></a>
<a id="vmsishformat" href="#"></a>
<h5 class="head"><span class="text">VMS-ish Format</span></h5>

<p> The default listing has a <span class="high italic">generic</span> WWW look about it, however
it can be made to look a little more like the format of the VMS
&quot;DIRECTORY&quot; command. In this mode the directories are presented as VMS
subdirectories, the version number is shown, if a version wildcard was
included in the specification then all matching versions are shown, the size
is presented in used and allocated blocks, and automatic script activation is
disabled. The VMS-style format is enabled by providing an explicit or wildcard
version number with the specification, as in the following example:
<a class="link blank" target="_blank" href="/wasd_root/wasdoc/*.*;">/wasd_root/wasdoc/*.*;</a>

<a id="3.0.0.0.2" href="#"></a>
<a id="3.listingicons" href="#"></a>
<a id="listingicons" href="#"></a>
<h5 class="head"><span class="text">Listing Icons</span></h5>

<p> By default (and generally) WASD installations are configured to return a
binary file for unknown content-types (usually triggering a browser
&quot;save-as&quot; dialog).  For such files, and in fact all files in general, a
directory listing icon is usually a link to a plain-text version of the file
(regardless of the actual content).  This becomes convenient way to access the
content for files with &quot;interesting&quot; file name extensions and the actual
markup of HTML source files, etc.  Of course some files containing non-textual
data will be variously displayed as gibberish depending on the browser.

<div class="note">
<a id="3.0.0.0.3" href="#"></a>
<a id="3.ymmv" href="#"></a>
<a id="ymmv" href="#"></a>
<h5 class="head center"><span class="text">YMMV</span></h5>
<hr class="note_hr">
Some browsers and operating systems insist they know better than the server and
ignore the response-specified content-type, inferring presentation of the
content from <span class="high italic">magic bytes</span> in that content or the trailing
dot-separated <span class="high italic">file name extension</span>.
<hr class="note_hr">
</div>

<a id="3.1" href="#"></a>
<a id="3.1.controllingaccesstoadirectory" href="#"></a>
<a id="controllingaccesstoadirectory" href="#"></a>
<h2 class="head"><span class="numb">3.1</span><span class="text">Controlling Access To A Directory</span></h2>

<p> The following files (empty, or not), when within a specific directory 
regulate access to that directory, and the listing of any parent directory or 
subdirectories. 

<ul class="list">

<li class="item"> <span class="high bold monosp">.WWW_HIDDEN &ndash; </span> 
Renders the directory completely invisible to the directory listing  mechanism. 
Files within the directory may still be accessed if specified  explicitly but
the directory content itself cannot be listed by any means. 

<li class="item"> <span class="high bold monosp">.WWW_NOWILD &ndash; </span> 
Renders the directory incapable of being listed using &quot;*.*&quot; characters
at the end of the path, even if allowed by the server.  This is a little
different to .WWW_HIDDEN, which hides the directory completely.  The
<span class="high italic">no-wild</span> still allows a directory without a home page to list as a
directory, it does however <span class="high bold">prevent the forced listing using the
&quot;*.*&quot; syntax</span>.

<li class="item"> <span class="high bold monosp">.WWW_NOP &ndash; </span> 
Any parent directory is not listed.

<li class="item"> <span class="high bold monosp">.WWW_NOS &ndash; </span> 
Any subdirectories are not listed.

<li class="item"> <span class="high bold monosp">.WWW_NOPS &ndash; </span> 
Any parent directory or subdirectories are not listed.

</ul>

<a id="3.2" href="#"></a>
<a id="3.2.quothiddenquotfiles" href="#"></a>
<a id="quothiddenquotfiles" href="#"></a>
<h2 class="head"><span class="numb">3.2</span><span class="text">&quot;Hidden&quot; Files</span></h2>

<p> Any file name beginning with a period is hidden from the directory listing 
mechanism (i.e. in VMS parlance it has only a type/suffix/extension).  If 
specifically accessed they will be retrieved however.  Hence the following 
files would not appear in a directory listing: 

<div class="blockof mono">.WWW_NOPS
.CANT_BE_SEEN
.HIDDEN_FROM_VIEW
.;1
.WWW_WASD
</div>

<a id="3.3" href="#"></a>
<a id="3.3.serverdirectives" href="#"></a>
<a id="serverdirectives" href="#"></a>
<h2 class="head"><span class="numb">3.3</span><span class="text">Server Directives</span></h2>

<p> The WASD server behaviour can be modified using <span class="high italic">server 
directives</span>.  For directory listings this involves the inclusion of a query 
string beginning with &quot;?httpd=index&quot;.  The server detects this URI
query string and processes it internally, changing the default action of
directory listings.

<p> Multiple directives can be combined by concatenating them with intervening 
ampersands, as per normal URI syntax.

<div class="blockof code">?httpd=index&amp;autoscript=no
?httpd=index&amp;readme=no
?httpd=index&amp;type=text/plain
?httpd=index&amp;layout=<span class="high italic">format</span>
?httpd=index&amp;script=<span class="high italic">script-name</span>
?httpd=index&amp;script=<span class="high italic">script-name</span>&amp;readme=no
?httpd=index&amp;delimit=none&amp;readme=no&amp;nos=yes
</div>

<p> Server directives specified in the URI propagate when moving between
directories unless the query string also contains

<div class="blockof code">&amp;local=yes
</div>

<a id="3.3.1" href="#"></a>
<a id="3.3.1.wwwwasd" href="#"></a>
<a id="wwwwasd" href="#"></a>
<h3 class="head"><span class="numb">3.3.1</span><span class="text">.WWW_WASD</span></h3>

<p> The control file .WWW_WASD can be used to contain server directives. 
Directives are generally included one per line with &quot;#&quot; prefixed comment
lines allowed.

<p> When a .WWW_WASD file is present in a directory it takes precedence over
any SSI or URI (query string) directives also being applied, unless it includes
an <span class="high italic">override=yes</span> directive.  When this is present any SSI and/or URI
directive string is also applied to the request.

<div class="blockof code"># an example .WWW_WASD file
autoscript=no
readme=no
style=sort2
sort=s-
override=yes
</div>

<a id="3.3.2" href="#"></a>
<a id="3.3.2.layout" href="#"></a>
<a id="layout" href="#"></a>
<h3 class="head"><span class="numb">3.3.2</span><span class="text">Layout</span></h3>

<p> Allows specification of the directory listing layout from the URL,
overriding the server default. The layout directive is a short,
case-insensitive string that specifies the included fields, relative placement
and optionally the width of the fields in a directory listing. Each field is
controlled by a single letter (one with colon-separated parameter) and
optional leading decimal number specifying the width. When a width is not
specified an appropriate default applies. An underscore is used to indicate a
single space and is used to separate the fields (two consecutive works well). 

<ul class="list simple list0">

<li class="item"> <span class="high bold">C &ndash; </span> creation date
<li class="item"> <span class="high bold">D &ndash; </span> description (often best specified last)

<ul class="list simple list0">
<li class="item"> <span class="high bold">D:L &ndash; </span> for files, make a link out of the description text
</ul>

<li class="item"> <span class="high bold">I &ndash; </span> icon (takes no field-width attribute)

<ul class="list simple list0">
<li class="item"> <span class="high bold">L &ndash; </span> link (highlighted anchor using the name of the file)
<li class="item"> <span class="high bold">L:F &ndash; </span> file-system name (for ODS-5 displays spaces, etc.) 
<li class="item"> <span class="high bold">L:N &ndash; </span> name-only, do not display the extension
<li class="item"> <span class="high bold">L:U &ndash; </span> force name to upper-case
</ul>

<li class="item"> <span class="high bold">N &ndash; </span> name (no link, why bother? who knows!)
<li class="item"> <span class="high bold">O &ndash; </span> owner (can be disabled)
<li class="item"> <span class="high bold">R &ndash; </span> revision date
<li class="item"> <span class="high bold">S &ndash; </span> size

<ul class="list simple list0">
<li class="item"> <span class="high bold">S:B &ndash; </span> in bytes (comma-formatted)
<li class="item"> <span class="high bold">S:D &ndash; </span> decimal kilos (see below)
<li class="item"> <span class="high bold">S:F &ndash; </span> kilo and mega are displayed to one decimal place
<li class="item"> <span class="high bold">S:K &ndash; </span> in kilo-bytes (and fractions thereof)
<li class="item"> <span class="high bold">S:M &ndash; </span> in mega-bytes (and fractions thereof)
</ul>

<li class="item"> <span class="high bold">U &ndash; </span> upper-case file and directory names (must be the
first character)

</ul>


<p> The default layout is:

<div class="blockof code">I__L__R__S__D
</div>

<p> The following provide other examples:

<div class="blockof code">?httpd=index&amp;layout=UI__L__R__S__D
?httpd=index&amp;layout=I__L__R__S:b__D
?httpd=index&amp;layout=I__L__R__S__D
?httpd=index&amp;layout=I__15L__S__D
?httpd=index&amp;layout=15L__9R__S
?httpd=index&amp;layout=15N_9C_9R_S
</div>

<p> <span class="high bold">By default the size of files is calculated as 1024 byte
kilos.</span>

<p> When using the &quot;S:D&quot;, the size is displayed as per &quot;F&quot; with
1000 byte kilos.  If it is prefered to have the default display in 1000 byte
kilos then set the directory listing layout using:

<div class="blockof code">?httpd=index&amp;layout=I__L__R__S:d__D
</div>

or explicitly direct the &quot;kilo&quot; quantity to 1000 with

<div class="blockof code">?httpd=index&amp;layout=I__L__R__S:0__D
</div>

to 1024 (as per VMS /UNIT=BYTES) with

<div class="blockof code">?httpd=index&amp;layout=I__L__R__S:2__D
</div>

with or without an explicit size directive

<div class="blockof code">?httpd=index&amp;layout=I__L__R__S:2:K__D
</div>

The following links illustrate the difference between the &quot;kilo&quot; values:

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;layout=I__L__R__S:0__D">/wasd_root/wasdoc/*.*?httpd=index&layout=I__L__R__S:0__D</a>
<td class="tabd">(1000)
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;layout=I__L__R__S:2__D">/wasd_root/wasdoc/*.*?httpd=index&layout=I__L__R__S:2__D</a>
<td class="tabd">(1024)
</table>

<p> If unsure of the kilo value being used check the
&quot;&lt;meta&gt;&quot; information in the directory listing.

<p> The following links illustrate this functionality by listing this 
document's directory in various formats.

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*">/wasd_root/wasdoc/*.*</a>
<td class="tabd">Default
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;layout=I__L">/wasd_root/wasdoc/*.*?httpd=index&layout=I__L</a>
<td class="tabd">Only an icon and link.
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*;?httpd=index&amp;layout=I__L__S">/wasd_root/wasdoc/*.*;?httpd=index&layout=I__L__S</a>
<td class="tabd">Icon, link and size (in VMS-style format).
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;layout=N__9C__9R">/wasd_root/wasdoc/*.*?httpd=index&layout=N__9C__9R</a>
<td class="tabd">Name, day created and day revised.
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;layout=UN__9C__9R">/wasd_root/wasdoc/*.*?httpd=index&layout=UN__9C__9R</a>
<td class="tabd">Name (in upper-case), day created and day revised.
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;layout=30D:l__S:b__R">/wasd_root/wasdoc/*.*?httpd=index&layout=30D:l__S:b__R</a>
<td class="tabd">Description (fixed width) as a link, size in bytes, and day revised.
</table>

<a id="3.3.3" href="#"></a>
<a id="3.3.3.directorystyle" href="#"></a>
<a id="directorystyle" href="#"></a>
<h3 class="head"><span class="numb">3.3.3</span><span class="text">Directory Style</span></h3>

<p> WASD has a default directory listing style where the page title is a series
of links to the various directories in the path, then column labels are
separated from directory links by a horizontal line, the after the listed
directories a blank line, and the listed files, followed by another horizontal
line, all in monospace font.  There have been a small number of variations on
this over the years.  The current default (post-v10.4) style is implemented
using an HTML table and differs from the historical preformatted text approach.

<p> For each style there is a second variant where the horizontal lines
partitioning the listing are not present.

<p> The various directory listing styles are illustrated below.

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*">/wasd_root/wasdoc/*.*</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=default2">/wasd_root/wasdoc/*.*?httpd=index&style=default2</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=sort">/wasd_root/wasdoc/*.*?httpd=index&style=sort</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=sort2">/wasd_root/wasdoc/*.*?httpd=index&style=sort2</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=anchor">/wasd_root/wasdoc/*.*?httpd=index&style=anchor</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=anchor2">/wasd_root/wasdoc/*.*?httpd=index&style=anchor2</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=htdir">/wasd_root/wasdoc/*.*?httpd=index&style=htdir</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=htdir2">/wasd_root/wasdoc/*.*?httpd=index&style=htdir2</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=original">/wasd_root/wasdoc/*.*?httpd=index&style=original</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=original2">/wasd_root/wasdoc/*.*?httpd=index&style=original2</a>
</table>

<a id="3.3.3.0.1" href="#"></a>
<a id="3.3.3.sortablelisting" href="#"></a>
<a id="sortablelisting" href="#"></a>
<h5 class="head"><span class="text">Sortable Listing</span></h5>

<p> There is also a useful alternate style that allows manual, automatic and
programmatic sorting of the listing content.  The sort is performed by
JavaScript and does not require a re-request of the server.  A sortable listing
is indicated by <span class="high" style="letter-spacing:-4px;">&#9660;&#9650;</span>&nbsp;
in the header icon column (if present).  When a column has been sorted
ascending/descending symbols are present adjacent to the column label.
The taper of the symbol shape <span class="high" style="letter-spacing:-4px;">&#9660;</span>&nbsp;
indicating larger/later to smaller/earlier top to bottom (descending), and
<span class="high" style="letter-spacing:-4px;">&#9650;</span>&nbsp; smaller/earlier to larger/later top to
bottom (ascending).  Manual sorting is accomplished by clicking on the column
label.  This reverses the current sort order.

<p> The examples above include the basic sortable listing.

<p> The sortable listing by default generates the standard WASD ascending by
name listing.  It is also possible to automatically sort a listing on a
particular column when it is generated.  This is done with an additional
parameter specifying the layout column character as used in
.  The default is to list top-to-bottom
ascending order.  An optional &quot;-&quot; lists top-to-bottom in descending
order (the redundant &quot;+&quot;) is also accepted.

<p> Examples of automatic sort on size, descending size, revision data and
descending revision date are below.

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=sort&amp;sort=s">/wasd_root/wasdoc/*.*?httpd=index&style=sort&sort=s</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=sort2&amp;sort=s-">/wasd_root/wasdoc/*.*?httpd=index&style=sort2&sort=s-</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=sort&amp;sort=r+">/wasd_root/wasdoc/*.*?httpd=index&style=sort&sort=r+</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;style=sort2&amp;sort=r-">/wasd_root/wasdoc/*.*?httpd=index&style=sort2&sort=r-</a>
</table>

<p> Programmatic listing from JavaScript embedded in a README.HTML or enclosing
SSI document can be performed by calling the wasdDirSort() function with a
string parameter containing the column character and optional order character.
The following example sorts descending by size.

<div class="blockof code">&lt;script language=&quot;JavaScript&quot;&gt;wasdDirSort('S-')&lt;/script&gt;
</div>

<p> To make all directory listings for a server or site sortable, place the
following mapping rule appropriately close to the top of relevant mapping
rules.

<div class="blockof code">SET * dir=style=sort
</div>

<a id="3.3.4" href="#"></a>
<a id="3.3.4.selectivelisting" href="#"></a>
<a id="selectivelisting" href="#"></a>
<h3 class="head"><span class="numb">3.3.4</span><span class="text">Selective Listing</span></h3>


<p> The WASD directory listing permits the use of VMS wildcards in the file
specification.  This directly allows selected listings of files.  For example,
all files, all the SDML files in this document's directory, all the HTML files,
and finally all the files containing 01 in the name.

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*">/wasd_root/wasdoc/*.*</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.wasdoc">/wasd_root/wasdoc/*.wasdoc</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.html">/wasd_root/wasdoc/*.html</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*0*.*">/wasd_root/wasdoc/*0*.*</a>
</table>

<p> In addition, it is possible to selectively include and/or exclude selected
files using the server directive <span class="high italic">httpd=index&amp;these=</span>. The parameter
is one or more, comma-separated file name specifications which may contain
wildcards.  The directory listing usually would have file name and type
wildcard (though can be a selector in itself) and then files are selected using 
using the above directive.  If a selector is preceded by an exclamation point
(&quot;!&quot;) this excludes matching files.  Matching is first to last and the
first match hit is applied.

<p> The following examples provide the equivalent listings to the examples above.

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;these=*">/wasd_root/wasdoc/*.*?httpd=index&these=*</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;these=*.wasdoc">/wasd_root/wasdoc/*.*?httpd=index&these=*.wasdoc</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;these=*.html">/wasd_root/wasdoc/*.*?httpd=index&these=*.html</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;these=*0*.*">/wasd_root/wasdoc/*.*?httpd=index&these=*0*.*</a>
</table>

<p> This example lists all of the files above in the one listing.

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;these=*.wasdoc,*.html,*01*.*">/wasd_root/wasdoc/*.*?httpd=index&these=*.wasdoc,*.html,*01*.*</a>
</table>

<p> This example lists all files except those with an .HTML type.

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;these=!*.html">/wasd_root/wasdoc/*.*?httpd=index&these=!*.html</a>
</table>

<a id="3.3.5" href="#"></a>
<a id="3.3.5.listingtitle" href="#"></a>
<a id="listingtitle" href="#"></a>
<h3 class="head"><span class="numb">3.3.5</span><span class="text">Listing Title</span></h3>

<p> The listing (page) title may be explicitly supplied using the
<span class="high italic">httpd=index&amp;title=..</span> directive.

<p> The keywords parallel those provided for path mapping <span class="high italic">SET dir=title=..</span>.

<p> <ul class="list simple list0">
<li class="item"> &quot;0&quot; (digit zero) suppress any title
<li class="item"> &quot;1..99&quot; where 1 is the top-level directory (device), 2 is the
second-level directory, 3 &hellip; 99 the current directory
<li class="item"> &quot;DEFAULT&quot; the default for the directory <span class="high italic">style</span>
<li class="item"> &quot;OWNER&quot; the VMS account owning the directory
<li class="item"> &quot;REMOTE&quot; the remote user name (for X509 authentication the certificate
common-name)
<li class="item"> &quot;THIS=&lt;string&gt;&quot; a literal string
</ul>

<a id="3.3.6" href="#"></a>
<a id="3.3.6.listingfont" href="#"></a>
<a id="listingfont" href="#"></a>
<h3 class="head"><span class="numb">3.3.6</span><span class="text">Listing Font</span></h3>

<p> Historically and by default, directory listings are provided in a monospace
font.  The parent document or browser (proprtional) font may be used instead
with the <span class="high italic">httpd=index&amp;font=inherit</span> directive.  This can only be used with
the sortable and tabular (post-v10.4) listings.  Historical listing styles are
only suitable for monospace fonts.

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;font=inherit">/wasd_root/wasdoc/*.*?httpd=index&font=inherit</a>
</table>

<p> There is the per-path  <span class="high italic">SET dir=font=inherit</span> mapping rule equivalent.

<a id="3.3.7" href="#"></a>
<a id="3.3.7.fileversions" href="#"></a>
<a id="fileversions" href="#"></a>
<h3 class="head"><span class="numb">3.3.7</span><span class="text">File Versions</span></h3>

<p> As described above, a directory listing can be requested in a <span class="high italic">VMSish</span>
style by appending a version delimter to the URL file specification, with
multiple versions of the file, where they exist, displayed with version number.

<p> Multiple versions may also be selectively listed using the
<span class="high italic">httpd=index&amp;versions=</span> directive.  The parameter can be an integer
representing the maximum number of versions to be listed, or an asterisk
wildcard indicating all versions should be listed.

<div class="blockof code">?httpd=index&amp;versions=0
?httpd=index&amp;versions=3
</div>

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;versions=*">/wasd_root/wasdoc/*.*?httpd=index&versions=*</a>
</table>

<p> There is the per-path  <span class="high italic">SET dir=versions=</span> mapping rule equivalent.

<a id="3.3.8" href="#"></a>
<a id="3.3.8.readmefiles" href="#"></a>
<a id="readmefiles" href="#"></a>
<h3 class="head"><span class="numb">3.3.8</span><span class="text">Readme Files</span></h3>

<p> When a directory listing is generated any &quot;README.&quot;, &quot;README.TXT&quot; or
&quot;README.HTML&quot; file (or  others as configured for the particular server) in the
directory will have the  contents displayed immediately below the title of the
page.  This allows  additional information on the directory's contents,
function, etc., to be  presented.  This can be suppressed by appending the
following query-string to  the directory specification, as in the accompanying
example: 

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;readme=no">/wasd_root/wasdoc/*.*?httpd=index&readme=no</a>
</table>

<p> Read-me files can be SSI documents if configured by the server
administrator. General SSI guidelines apply to these, see
<a class="link" href="env004.html#4.serversideincludesssi">4. Server Side Includes (SSI)</a>

<a id="3.3.9" href="#"></a>
<a id="3.3.9.listingdelimiters" href="#"></a>
<a id="listingdelimiters" href="#"></a>
<h3 class="head"><span class="numb">3.3.9</span><span class="text">Listing Delimiters</span></h3>

<p> A directory listing is normally delimited by a header, comprising an
&quot;Index of&quot;, column headings and horizontal line, and a footer,
comprising a horizintal line.  This default behaviour may be modified using the
&quot;delimit=&quot; directive.

<ul class="list list0">
<li class="item"> <span class="high bold">header &ndash; </span> 
a header comprising a horizontal rule and column heading is generated
<li class="item"> <span class="high bold">footer &ndash; </span> 
a footer comprising a horizontal rule is generated
<li class="item"> <span class="high bold">none &ndash; </span> 
no header or footer is generated
<li class="item"> <span class="high bold">both &ndash; </span> 
both header and footer is generated (default)
</ul>

<div class="blockof code">?httpd=index&amp;delimit=none
?httpd=index&amp;delimit=top
</div>

<a id="3.3.10" href="#"></a>
<a id="3.3.10.suppressingdirectories" href="#"></a>
<a id="suppressingdirectories" href="#"></a>
<h3 class="head"><span class="numb">3.3.10</span><span class="text">Suppressing Directories</span></h3>

<p> Parent and subdirectories may be suppressed in a listing using the &quot;nop&quot;,
&quot;nops&quot; and &quot;nos&quot; directives.  These parallel the purpose of the directory
listing control files described in <a class="link" href="env003.html#3.1.controllingaccesstoadirectory">3.1 Controlling Access To A Directory</a>,
and if set to true suppress the listing of the corresponding directories.

<ul class="list list0">
<li class="item"> <span class="high bold">nop &ndash; </span> 
any parent directory is not listed
<li class="item"> <span class="high bold">nops &ndash; </span> 
any subdirectories are not listed
<li class="item"> <span class="high bold">nos &ndash; </span> 
any parent directory or subdirectories are not listed
</ul>

<div class="blockof code">?httpd=index&amp;nop=yes
?httpd=index&amp;nops=yes
?httpd=index&amp;nos=yes
</div>

<a id="3.3.11" href="#"></a>
<a id="3.3.11.listingrefreshandexpiry" href="#"></a>
<a id="listingrefreshandexpiry" href="#"></a>
<h3 class="head"><span class="numb">3.3.11</span><span class="text">Listing Refresh and Expiry</span></h3>

<p> Directory listings and trees may be <span class="high italic">pre-expired</span>.  That is, the listing
is reloaded each time the page is referenced.  This is convenient in some
environments where directory contents change frequently, but adds considerable
over-head and so is often disabled by default.  Individual directory listings
may have either default behaviour over-ridden using syntax similar to the
following examples:

<div class="blockof code">/dir1/dir2/*.*?httpd=index?expired=yes
/dir1/dir2/*.*?httpd=index?expired=no
/tree/dir1/dir2/?httpd=index?expired=yes
/tree/dir1/dir2/?httpd=index?expired=no
</div>

<a id="3.3.12" href="#"></a>
<a id="3.3.12.scriptingfromdirectorylistings" href="#"></a>
<a id="scriptingfromdirectorylistings" href="#"></a>
<h3 class="head"><span class="numb">3.3.12</span><span class="text">Scripting From Directory Listings</span></h3>

<p> When a directory listing is requested a script name can be specified to be 
used as a prefix to all of the file links in the listing.  When the client 
selects a file link the script specified is implicitly activated. 

<div class="blockof code">?httpd=index&amp;script=script_name
</div>

<p> The following link illustrates this facility by specifying the  <span class="high italic">liner</span>
script.  When a link is selected the <span class="high italic">liner</span> script presents the file with
preprended line numbers:

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;script=/cgi-bin/liner">/wasd_root/wasdoc/*.*?httpd=index&script=/cgi-bin/liner</a>
</table>

<a id="3.3.13" href="#"></a>
<a id="3.3.13.autoscripting" href="#"></a>
<a id="autoscripting" href="#"></a>
<h3 class="head"><span class="numb">3.3.13</span><span class="text">Auto-Scripting</span></h3>

<p> The server's <span class="high italic">auto-scripting</span> facility (see description of
[AddType] configuration  directive in the Technical Overview) can be suppressed
by appending the following  query-string to the directory specification, as in
the accompanying example:

<div class="blockof code">?httpd=index&amp;autoscript=no
</div>

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;autoscript=no">/wasd_root/wasdoc/*.*?httpd=index&autoscript=no</a>
</table>

<p> This implies that any file accessed from the listing will be transfered 
without any data conversion possible due to script activation.  The browser
must then process the document in  some fashion (often by activating a <span class="high italic">save
as</span> dialog).

<a id="3.3.14" href="#"></a>
<a id="3.3.14.targetwindow" href="#"></a>
<a id="targetwindow" href="#"></a>
<h3 class="head"><span class="numb">3.3.14</span><span class="text">Target Window</span></h3>

<p> Files generally open in the current browser window.  It is possible to open
a file in another window using the <span class="high italic">target=</span> directive.

<div class="blockof code">?httpd=index&amp;target=_blank
</div>

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;target=_blank">/wasd_root/wasdoc/*.*?httpd=index&target=_blank</a>
</table>

<p>
<a id="3.3.14.0.0.1" href="#"></a>
<a id="3.3.14.browserhtmlsupportedtargets" href="#"></a>
<a id="browserhtmlsupportedtargets" href="#"></a>
<h6 class="head display0"><span class="text">Browser (HTML) Supported Targets</span></h6>
<span class="high bold">Browser (HTML) Supported Targets</span>
<table class="tabl">
<tr class="tabr under">
<th class="tabh">Target
<th class="tabh">Description
<tr class="tabr">
<tr class="tabr">
<td class="tabd">_blank
<td class="tabd">opens the file in a new window or tab
<tr class="tabr">
<td class="tabd">_self
<td class="tabd">in the same frame
<tr class="tabr">
<td class="tabd">_parent
<td class="tabd">in the parent frame
<tr class="tabr">
<td class="tabd">_top
<td class="tabd">in the full body of the window
<tr class="tabr">
<td class="tabd"><span class="high italic">framename</span>
<td class="tabd">in a named frame
</table>

There is a per-path mapping &quot;SET dir=target=&quot; equivalent.

<a id="3.3.15" href="#"></a>
<a id="3.3.15.specifyingcontenttype" href="#"></a>
<a id="specifyingcontenttype" href="#"></a>
<h3 class="head"><span class="numb">3.3.15</span><span class="text">Specifying Content-Type</span></h3>

<p> When accessing files it is possible to explicitly specify the identifying
content-type to be returned to the browser in the HTTP response header.  Of
course this does not change the actual content of the file, just the header
content-type!  This is primarily provided to allow access to plain-text
documents that have obscure, non&quot;-standard&quot; or non-configured file extensions.
See <a class="link" href="env002.html#2.2.explicitlyspecifyingcontenttype">2.2 Explicitly Specifying Content-Type</a>.

<p> It could also be used for other purposes, &quot;forcing&quot; the browser to accept a
particular file as a particular content-type.  This can be useful if the
extension is not configured (as mentioned above) or in the case where the file
contains data of a known content-type but with an extension conflicting with an
already configured extension specifying data of a different content-type.

<p> It is posssible to &quot;force&quot; the content-type for all files in a particular
directory.  Enter the path to the directory and then add

<div class="blockof code">?httpd=index&amp;type=text/plain
</div>

<p> (or what-ever type is desired).  Links to files in the listing will contain
the appropriate &quot;?httpd=content&amp;type=...&quot; appended as a query string.

<p> This is an example:

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*">/wasd_root/wasdoc/*.*</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*?httpd=index&amp;type=text/plain">/wasd_root/wasdoc/*.*?httpd=index&type=text/plain</a>
</table>

<div class="note">
<a id="3.3.15.0.1" href="#"></a>
<a id="3.3.15.ymmv" href="#"></a>
<a id="ymmv" href="#"></a>
<h5 class="head center"><span class="text">YMMV</span></h5>
<hr class="note_hr">
Some browsers and operating systems insist they know better than the server and
ignore the response-specified content-type, inferring presentation of the
content from <span class="high italic">magic bytes</span> in that content or the trailing dot-separated
<span class="high italic">file name extension</span>.
<hr class="note_hr">
</div>

<a id="3.3.16" href="#"></a>
<a id="3.3.16.iconplaintextlink" href="#"></a>
<a id="iconplaintextlink" href="#"></a>
<h3 class="head"><span class="numb">3.3.16</span><span class="text">Icon Plain Text Link</span></h3>

<p> Directory listing icons are generally links to the content of the file
displayed as plain-text (<a class="link" href="env003.html#3.listingicons">&lsquo;Listing Icons&rsquo; in 3. Directory Listing</a>).  This can be disabled using
the <span class="high italic">ilink</span> directive.

<div class="blockof code">?httpd=index&amp;ilink=no
</div>

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/wasd_root/wasdoc/*.*&amp;ilink=no">/wasd_root/wasdoc/*.*&ilink=no</a>
</table>

There is a per-path mapping &quot;SET dir=noilink&quot;  equivalent.

<a id="3.3.17" href="#"></a>
<a id="3.3.17.querystring" href="#"></a>
<a id="querystring" href="#"></a>
<h3 class="head"><span class="numb">3.3.17</span><span class="text">Query String</span></h3>

<p> The <span class="high italic">query=&lt;string&gt;</span> directive can be used to propagate an explicit query
string to subsequent directory requests.  This is intended to be applied from a
<span class="high monosp">.WWW_WASD</span> control file because actual URI query strings are propagated by
default.

<div class="blockof code"># an example .WWW_WASD file
query=httpd=index&amp;style=sort2&amp;sort=s-
</div>

<a id="3.3.18" href="#"></a>
<a id="3.3.18.allowingoverride" href="#"></a>
<a id="allowingoverride" href="#"></a>
<h3 class="head"><span class="numb">3.3.18</span><span class="text">Allowing Override</span></h3>

<p> When a <span class="high monosp">.WWW_WASD</span> file is present in a directory it takes precedence over
any SSI or URI (query string) directives also available, unless it includes an
<span class="high italic">override=yes</span> directive.  When this is present any SSI and/or URI directive
string is also applied to the request.

<div class="blockof code"># an example .WWW_WASD file
override=yes
</div>

<a id="3.4" href="#"></a>
<a id="3.4.directorytree" href="#"></a>
<a id="directorytree" href="#"></a>
<h2 class="head"><span class="numb">3.4</span><span class="text">Directory Tree</span></h2>

<p> The &quot;Tree&quot; internal script allows a directory tree to be  generated.  This
script is supplied with a directory name from which it displays all
subdirectories in a hierarchical layout, showing subordinancies.  Selecting any
one of the subdirectories displayed generates a directory listing (see
<a class="link" href="env003.html#3.directorylisting">3. Directory Listing</a>). 

<p> Appending a file specification (with or without wildcards) to the 
directory name results in the any directory listing displaying only files 
matching the specification.  To display all files a &quot;*.*&quot;  should always be
appended. 

<p> Note that this script only processes the physical file system.  This may 
or may not correspond to the web environment's virtual mappings. 

<p> To enable the VMS-style directory listing format, or to use any of the 
directory server directives, append one, or a combination of, the following 
query strings to the directory specification: 

<div class="blockof code">?httpd=index&amp;autoscript=no
?httpd=index&amp;readme=no
?httpd=index&amp;script=<span class="high italic">script-name</span>
?httpd=index&amp;script=<span class="high italic">script-name</span>&amp;readme=no
</div>

<p> The following links provide online demonstrations:

<table class="tabl">
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/tree/wasd_root/wasdoc/*.*">/tree/wasd_root/wasdoc/*.*</a>
<tr class="tabr">
<td class="tabd"><a class="link blank monosp" target="_blank" href="/tree/wasd_root/wasdoc/*.*;">/tree/wasd_root/wasdoc/*.*;</a>
<td class="tabd">VMS-ish
</table>

<p> Note that this activity is I/O intensive, and can take a considerable 
period if the tree is extensive. 
<!-- source:0400_SSI.WASDOC -->

<table class="NAVtable NAVprint"><tr>
<td><a href="javascript:window.history.back();">&#8617;&#xFE0E;</a>
<td><a href="env002.html#2.">&#8598;&#xFE0E;</a>
<td><a href="env000.html#0.">&#8593;&#xFE0E;</a>
<td><a href="env004.html#4.">&#8600;&#xFE0E;</a>
<td><a href="javascript:window.history.forward();">&#8618;&#xFE0E;</a>
</table>