私は問題のこのタイプに関するいくつかの質問があります知っているが、彼らと私は鉱山でいただきました!間違っを見つけ出すことができませんでした。...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に問題があるようですが、これを避ける理由と方法を教えてください。
あなたがURLの管理者を書いているときに 'index.php?id = admin'を渡していて、admin.phpを渡しているときにうまくいきますので、idが何であるべきかを確認する必要があります。価値管理を持っている、それは私が得るものです。 –
今のところ、indexはidの値を出力するだけで、今は処理しません。しかし、それはあなたのために私のapache設定で何かを推測する場合は動作しますか?編集:あなたのコメントを間違って読んでください - 問題は '?id = admin'を介して管理者に渡されないので、' admin /?id = admin'に変わってしまいます。 – daintycode
Apache設定で 'MultiViews'が有効になっているかどうか確認してください。そうした場合は、 'Options -MultiViews.'で無効にしてみてください。 Apacheがファイル(あなたの場合は 'admin')を見つけず、MultiViewsが有効になっていると、Apacheはその名前のファイルをフォルダ内で探します。あなたのケースでは 'admin。*'(あなたは持っています)。 –