取自this link并翻译(但仅在WaybackMachine中可用)。
借助 mod_rewrite 的个性化输出
借助wCheckPermissionViewFile功能可以个性化php文件。在文件头中执行权限检查以抑制输出就足够了。如果需要个性化其他文件类型(例如 ZIP、PDF、...),可以使用wPermission.cgi 或自定义 php 文件。
为了在每个指向二进制文件的个性化链接之前为编辑器节省一些编写wPermission.cgi 的工作,可以使用Apache 模块mod_rewrite。有了这个,可以在执行之前转换每个访问的链接。例如,您可以将wPermission.cgi 定义在每个网络服务器调用的前面。直接执行也可以在 php 文件的帮助下重定向(不需要wPermission.cgi)。
通过 Perl (wPermission.cgi) 检查的 .htaccess 文件示例
#Alle Dateien mit angegebener Endung über wPermission.cgi aufrufen.
RewriteEngine on
RewriteCond %{REQUEST_URI} .pdf$ [NC,OR]
RewriteCond %{REQUEST_URI} .doc$ [NC,OR]
RewriteCond %{REQUEST_URI} .xls$ [NC,OR]
RewriteCond %{REQUEST_URI} .ppt$ [NC,OR]
RewriteCond %{REQUEST_URI} .pps$ [NC,OR]
RewriteCond %{REQUEST_URI} .zip$ [NC,OR]
RewriteCond %{REQUEST_URI} .jpg$ [NC,OR]
RewriteCond %{REQUEST_URI} .jpeg$ [NC,OR]
RewriteCond %{REQUEST_URI} .png$ [NC,OR]
RewriteCond %{REQUEST_URI} .gif$ [NC]
RewriteRule (.*) /cgi-bin/wPermission.cgi?file=/de/dokumente/$1
.htacces 文件的示例,通过 PHP 进行检查(例如 download.php,见下文)
#Alle Dateien mit angegebener Endung über die angegebene PHP-Datei aufrufen.
RewriteEngine on
RewriteCond %{REQUEST_URI} .pdf$ [NC,OR]
RewriteCond %{REQUEST_URI} .doc$ [NC,OR]
RewriteCond %{REQUEST_URI} .xls$ [NC,OR]
RewriteCond %{REQUEST_URI} .ppt$ [NC,OR]
RewriteCond %{REQUEST_URI} .pps$ [NC,OR]
RewriteCond %{REQUEST_URI} .zip$ [NC,OR]
RewriteCond %{REQUEST_URI} .jpg$ [NC,OR]
RewriteCond %{REQUEST_URI} .jpeg$ [NC,OR]
RewriteCond %{REQUEST_URI} .png$ [NC,OR]
RewriteCond %{REQUEST_URI} .gif$ [NC]
RewriteRule (.*) /de/download.php?path=/de/dokumente/$1
说明
如果您想个性化目录/de/dokumente 中的所有PDF 和ZIP 文件而不更改链接,您可以将.htaccess 文件放入该目录。在这个文件中定义了重定向规则。
规则可以用任意文件扩展名进行扩展,NC 代表不区分大小写。请注意,这些规则也会继承到子目录中。
二进制文件本身必须签入并提供相应的个性化设置。
如果您想检查文件是否处于有效的发布时间段(例如在线或离线),请在通过 PHP API wIsOnline 进行权限检查之前进行检查。
示例:download.php 用于实现“.htacces 文件通过 PHP 的检查(例如 download.php)”
<?php
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Dieses Skript erzwingt den Download von Dokumenten. PDF, DOC, XLS und PPT Dokumente werden je nach Browser angezeigt.
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Einlesen der Weblication(r) 4.x API:
require_once ($_SERVER["DOCUMENT_ROOT"]."/weblication/lib/WAPI/WAPI.inc");
$filenameRel = str_replace("..", "", $_GET['path']);
$filename = $_SERVER['DOCUMENT_ROOT'].$filenameRel;
if(preg_match("/\.\w+$/", $filename) && !preg_match("/\.(php|php5|php4|xml|xsl|cgi|pl)$/", $filename) && !preg_match("/\/weblication\//", $filename) && file_exists( $filename ) ){
if(wCheckPermissionViewFile($filenameRel) == 1){
header("Pragma: no-cache");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
if(preg_match("/\.pdf/i", $filenameRel)){
header("Content-Type: application/pdf");
}
else if(preg_match("/\.doc/i", $filenameRel)){
header("Content-Type: application/msword");
}
else if(preg_match("/\.xls/i", $filenameRel)){
header("Content-Type: application/msexcel");
}
else if(preg_match("/\.ppt/i", $filenameRel)){
header("Content-Type: application/mspowerpoint");
}
else if(preg_match("/\.pps/i", $filenameRel)){
header("Content-Type: application/mspowerpoint");
}
else if(preg_match("/\.jpg/i", $filenameRel)){
header("Content-Type: image/jpg");
}
else if(preg_match("/\.jpeg/i", $filenameRel)){
header("Content-Type: image/jpeg");
}
else if(preg_match("/\.png/i", $filenameRel)){
header("Content-Type: image/png");
}
else if(preg_match("/\.gif/i", $filenameRel)){
header("Content-Type: image/gif");
}
else{
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
}
readfile($filename);
}
else{
print "Permission Denied!";
}
}
else {
print 'Sorry, wrong path or file does not exist on the server!';
print '<br/><a href="javascript:history.back();">back</a>';
}
exit;
?>
对于较新版本的Weblication this link 可能会有所帮助。它是德语,因为制造商的主要语言是德语。