2016-10-07 6 views
1

私は問題のこのタイプに関するいくつかの質問があります知っているが、彼らと私は鉱山でいただきました!間違っを見つけ出すことができませんでした。...htaccessファイルには、特定の言葉 "

の.htaccess

に間違ったリダイレクト
RewriteEngine On 
RewriteRule ^([a-zA-Z0-9]*)$ index.php?id=$1 [NC,L] 

<FilesMatch "admin.php"> 
    AuthName "Member Only" 
    AuthType Basic 
    AuthUserFile D:/web/shorten/.htpasswd 
    require valid-user 
</FilesMatch> 

ファイルシステム

shorten 
    - .htaccess 
    - .htpasswd 
    - admin.php 
    - index.php 

ので、計画はすべて英数字トンを書き換えることですo index.php?id = stuff - うまく動作します。正規表現が単語adminと一致するとどういうわけか間違っています。私が得ている結果はadmin /?id = adminです。もちろん、404につながっています。

admin.phpにアクセスすると、authなどすべてで正常に正常に動作します。

これは既存のadmin.phpに問題があるようですが、これを避ける理由と方法を教えてください。

+0

あなたがURLの管理者を書いているときに 'index.php?id = admin'を渡していて、admin.phpを渡しているときにうまくいきますので、idが何であるべきかを確認する必要があります。価値管理を持っている、それは私が得るものです。 –

+0

今のところ、indexはidの値を出力するだけで、今は処理しません。しかし、それはあなたのために私のapache設定で何かを推測する場合は動作しますか?編集:あなたのコメントを間違って読んでください - 問題は '?id = admin'を介して管理者に渡されないので、' admin /?id = admin'に変わってしまいます。 – daintycode

+0

Apache設定で 'MultiViews'が有効になっているかどうか確認してください。そうした場合は、 'Options -MultiViews.'で無効にしてみてください。 Apacheがファイル(あなたの場合は 'admin')を見つけず、MultiViewsが有効になっていると、Apacheはその名前のファイルをフォルダ内で探します。あなたのケースでは 'admin。*'(あなたは持っています)。 –

答えて

0

面白い話..

Chrome(最終的には他のブラウザも)キャッシュリダイレクト。私が読んだ限り、これは301のものだけですが、すべてがキャッシュされているようです。

だから、変わったリダイレクトは、リダイレクトを使いこなすことによって引き起こされた間違ったものでした。

とにかく私を助けてくれてありがとう。 :)

+0

これをできるだけ早く正しいものにするつもりだから、私は2日間私の事実をチェックするように見えます。 – daintycode