何らかの理由で、.htaccessRewriteRuleを実際に機能させることができません。私は多くのことを試し、グーグルをしましたが、失敗しました。考えられる原因の1つは、かなり古いバージョンのApacheを使用していることです(ただし、これは私の制御不能です)。バージョンを取得する方法がわかりませんが、phpinfo()に「ApacheAPIバージョン20051115」と表示されます。少なくともデスクトップ、Blackberry、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>
このリダイレクトは機能しているように見えますが、正しい認証ユーザー/パスワードを指定した後でないと、まさにそれを防ぎたいと思います。
ヒントは大歓迎です...