我对Apache重定向有疑问。请参阅下面的方案。
我有一个网址sub.example.com
需要重定向到www.example.com/index.php?r=something
。当我在浏览器中加载www.example.com/index.php?r=something
时,css文件将从www.example.com/css/file.css
加载。所以我无法为sub.example.com
写一个简单的重定向到www.example.com/index.php?r=something
,因为它会导致css文件的404。我通过应用以下重定向规则修复了这些问题,它工作正常(意味着css文件也被加载)。
RewriteEngine On
RewriteRule ^(.+/?)?(/|\.htm|\.php|\.html|/[^.]*)$ http://www.example.com/index.php?r=something [P]
我的问题是,当我将sub.example.com/?success=1
重定向到www.example.com/index.php?r=something&success=1
时。上述规则是否满足此要求?如果没有,请你帮忙修改规则。提前谢谢。
答案 0 :(得分:0)
经过一些谷歌搜索,我找到了解决方案。有一个QSA(查询字符串附加)标志,它将强制重写引擎将替换字符串的查询字符串部分附加到现有字符串。因此,我必须将该标志添加到现有的重写规则中,如下所示。
RewriteRule ^(.+/?)?(/|\.htm|\.php|\.html|/[^.]*)$ http://www.example.com/index.php?r=something [P,QSA]
瞧,这个问题已经解决了。
谢谢,