首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于DBM值的mod_rewrite

基于DBM值的mod_rewrite
EN

Stack Overflow用户
提问于 2017-02-28 21:19:55
回答 1查看 26关注 0票数 0

我正在寻找一些帮助来编写一个RewriteRule,以作用于一个DBM值。我有一个包含用户I和主目录路径或url的dbm文件。http://www.domain.com/~userid将查找用户or并返回主目录(如/ home /userid )或url (如http://www.userid.com )。如果返回主目录,则显示内容。如果返回一个url,我希望客户端重定向。运行Apache2.2,我有以下内容:

代码语言:javascript
复制
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重定向部分遗漏一些简单的东西。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-03-01 03:31:08

做了一些小的调整,它似乎是工作的。如果任何人看到任何错误或更好的方法,请让我知道。

代码语言:javascript
复制
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]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42509872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档