apache - RewriteCond 反向引用不起作用

标签 apache mod-rewrite backreference

如果我访问http://www.example.com,我希望它留在那里,效果很好。
如果我访问 http://bar.example.com 它会重定向到 http://www..com,这是错误的
考虑到 RewriteCond

中的反向引用,我希望它转到 http://www.example.com
RewriteEngine On

RewriteCond %{HTTP_HOST}   !^$  
RewriteCond %{HTTP_HOST}   !^www.(example).com [NC]  
RewriteRule ^(.*)          http://www.%1.com/$1 [L,R]  

Ubuntu 8.04
软件包:apache2-mpm-prefork
架构:i386
版本:2.2.8-1

最佳答案

否定模式没有匹配项,因此您无法引用一组不存在的匹配项。

但是尝试一下这个规则:

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*) http://www.example.com/$1 [L,R=301]

关于apache - RewriteCond 反向引用不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1535485/

相关文章:

apache - 如何在 htaccess 中重写 url

javascript - 带反向引用的正则表达式捕获组

regex - 从正则表达式中提取捕获组匹配? (或 : where is gregexec? )

python - 在守护进程模式下使用 mod_wsgi 在 Django 站点中导入错误

apache - 当文件被压缩时 Perl 上传失败

java - 无法从 .xlsx 单元格读取 RGB 数据

apache - 保护 Apache 和 PHP-FPM

php - 使用 htaccess 从 index.php 重定向到 another.php 文件

php - 如何删除 codeigniter 路径中的 "index.php"

JavaScript - 字符串正则表达式反向引用