出于某种原因,我真的无法让我的 .htaccess RewriteRule 工作。我尝试了很多事情并进行了谷歌搜索,但失败了。一个可能的原因可能是我有一个相当旧的 Apache 版本(但这是我无法控制的)。不确定如何检索版本,但 phpinfo() 向我显示“Apache API 版本 20051115”。它至少必须在台式机、黑莓和 iPad 上工作。
我想重写这个:http://subdomain.domain.com/folder1/?id=1234 到以下:http://othersubdomain.domain.com/?id=1234 其中 id 可以是任何数字(我重写任何参数都很好,我也可以重定向到/folder1/?id=1234,重要的部分是子域和参数仍然存在的事实)。重要的是我没有收到身份验证弹出窗口(在任何设备上)。
我尝试了以下方法:
AuthUserFile /home/user/path/to/.htpasswd
AuthGroupFile /dev/null
AuthName "This site requires a valid username and password"
AuthType Basic
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^folder1.*$ http://othersubdomain.domain.com%{REQUEST_URI}? [redirect=301,last]
<limit GET POST>
require valid-user
</limit>
现在似乎在我的机器上正确重定向的唯一东西是 subdomain.domain.com/folder1/ (没有最后一个 / 它不起作用,或者如果我在末尾添加参数,即 .../folder1/? id=1234 它也不起作用)。
我进一步尝试了以下内容:
AuthUserFile /home/user/path/to/.htpasswd
AuthGroupFile /dev/null
AuthName "This site requires a valid username and password"
AuthType Basic
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/folder1
RewriteRule .* http://othersubdomain.domain.com/?%{QUERY_STRING} [redirect=301,last]
<limit GET POST>
require valid-user
</limit>
此重定向似乎有效,但只有在我提供正确的身份验证用户/密码之后,这正是我想要阻止的。
提示非常受欢迎......