由于某种原因,我真的无法让我的.htaccess RewriteRule工作。我尝试了很多东西,并做了我的谷歌搜索,但失败了。一个可能的原因可能是我有一个非常古老的Apache版本(但这是我无法控制的)。不知道如何检索版本,但phpinfo()显示我“Apache API版本20051115”。至少它必须在台式机,黑莓和iPad上运行。Apache htaccess重写规则不起作用
我想改写这个:http://subdomain.domain.com/folder1/?id=1234 以下几点:http://othersubdomain.domain.com/?id=1234 其中id可以是任意数字(我很好重写任何参数,我还罚款与重定向到/文件夹1/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>
此重定向似乎工作,但只有在我给出正确的验证用户名/密码,而这正是我想避免的。
技巧非常欢迎更多...
感谢您的回复。如果我提供了正确的身份验证,这确实有效,但我希望它在没有获得身份验证弹出对话框的情况下运行。 – jeebee
尝试将Auth *指令包装为 。这可以帮助您关闭特定网址的身份验证。 –
再次感谢,但我没有做到这一点。尽管听起来它应该能够解决这个问题。 但是,我发现了别的东西,我非常满意。我完全删除了顶层.htaccess。我的顶层是一个有自己的身份验证(我只是启用了一些身份验证插件)的Wordpress网站。我将.htaccess文件移到了我想要的子文件夹中。 – jeebee