这似乎是一个非常简单的问题。
我尝试将 RewriteMap 指令放在 .htaccess 文件中,但日志显示警告:
RewriteMap not allowed here
Run Code Online (Sandbox Code Playgroud)
然后我尝试将它放在 apache2/sites-available 文件中的 VirtualHost 声明中,但是重新加载 apache 给了我:
RewriteMap not allowed here
...fail!
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,都启用了 RewriteEngine。
这是指文件系统上实际映射的位置,还是 RewriteMap 指令?
以防万一它有帮助:
<VirtualHost *:80>
ServerName localhost
etc...
<Directory /var/www/site>
AllowOverride all
Options Indexes FollowSymLinks MultiViews
Order allow,deny
Allow from 127.0.0.1
RewriteEngine On
RewriteMap map txt:/var/www/site/map.txt
RewriteRule /path/[^/]+/([^/]+) ${map:$1}
etc...
Run Code Online (Sandbox Code Playgroud) 我刚刚开始尝试使用 postfix 重写发件人地址。debian-7.11
我用和运行服务器postfix-2.9.6
。
内容/etc/postfix/main.cf
:
[...]
smtp_generic_maps = hash:/etc/postfix/generic
[...]
Run Code Online (Sandbox Code Playgroud)
内容/etc/postfix/generic
:
santiago@uranus.caoba.fr santiago.uranus.caoba.fr@caoba-mail.fr
auguste@uranus.caoba.fr auguste.uranus.caoba.fr@caoba-mail.fr
Run Code Online (Sandbox Code Playgroud)
到目前为止它有效。当用户santiago
发送电子邮件时,它会按照santiago.uranus.caoba.fr@caoba-mail.fr
我想要的方式发送。
我的问题是我希望任何用户都可以执行此重写,而不必向/etc/postfix/generic
. 所以我想知道是否可以通过某种正则表达式来完成,例如:
(.*)@$hostname $1.$hostname@caoba-mail.fr
Run Code Online (Sandbox Code Playgroud)
这有可能吗?
感谢您的帮助
圣地亚哥