Apache 基于dbm值的mod_重写
我正在寻找一些帮助来编写一个重写规则来处理dbm值。我有一个dbm文件,其中包含一个用户ID和主目录路径或url。将查找userid并返回像/home/userid这样的主目录或像这样的url。如果返回主目录,则显示内容。如果返回url,我希望客户端被重定向。在运行Apache 2.2时,我有以下几点:Apache 基于dbm值的mod_重写,apache,redirect,mod-rewrite,Apache,Redirect,Mod Rewrite,我正在寻找一些帮助来编写一个重写规则来处理dbm值。我有一个dbm文件,其中包含一个用户ID和主目录路径或url。将查找userid并返回像/home/userid这样的主目录或像这样的url。如果返回主目录,则显示内容。如果返回url,我希望客户端被重定向。在运行Apache 2.2时,我有以下几点: RewriteEngine On RewriteLog /etc/httpd/logs/rewrite_log RewriteLogLevel 4 RewriteMap homedir.dbm
RewriteEngine On
RewriteLog /etc/httpd/logs/rewrite_log
RewriteLogLevel 4
RewriteMap homedir.dbm dbm:/var/www/data/homedir.dbm
RewriteCond ${homedir.dbm:$1|lookupfailed} (.*)
RewriteCond %1 !lookupfailed
RewriteRule ^/~([^/]+)/(.*)$ /%1/www/$2 [L]
RewriteCond ${homedir.dbm:$1|lookupfailed} (.*)
RewriteCond %1 !lookupfailed
RewriteCond %1 !^http [NC]
RewriteRule ^/~([^/]+)$ /~$1/ [L,R=301]
RewriteCond ${homedir.dbm:$1|lookupfailed} (.*)
RewriteCond %1 !lookupfailed
RewriteCond %1 ^http [NC]
RewriteRule ^/~([^/]+)$ %1 [R]
主目录部分似乎在工作,但我必须错过一些简单的url重定向部分。非常感谢您提供的任何帮助。做了一些小的调整,看起来效果不错。如果有人发现任何错误或更好的方法,请告诉我
RewriteEngine On
RewriteLog /etc/httpd/logs/rewrite_log
RewriteLogLevel 4
RewriteMap homedir.dbm dbm:/var/www/data/homedir.dbm
RewriteCond ${homedir.dbm:$1|lookupfailed} (.*)
RewriteCond %1 !lookupfailed
RewriteCond %1 !^http [NC]
RewriteRule ^/~([^/]+)/(.*)$ /%1/www/$2 [L]
RewriteCond ${homedir.dbm:$1|lookupfailed} (.*)
RewriteCond %1 !lookupfailed
RewriteCond %1 ^http [NC]
RewriteRule ^/~([^/]+)/(.*)$ ${homedir.dbm:$1} [L,R]
RewriteCond ${homedir.dbm:$1|lookupfailed} (.*)
RewriteCond %1 !lookupfailed
RewriteCond %1 !^http [NC]
RewriteRule ^/~([^/]+)$ /~$1/ [L,R=301]
RewriteCond ${homedir.dbm:$1|lookupfailed} (.*)
RewriteCond %1 !lookupfailed
RewriteCond %1 ^http [NC]
RewriteRule ^/~([^/]+)$ ${homedir.dbm:$1} [L,R]