0

http リクエスト (pdf など) はすべてvalidate.phpにリダイレクトする必要があるため、URL (たとえばhttp:...../whatever/whatever/1.pdf) を呼び出す場合、htaccessは代わりにvalidate.phpを実行する必要があります。

Web と stackoveflow で多くの例を試しましたが、まだ運がありません。ほとんどの人にとってほとんど問題なく動作するため、サーバーに何か問題があるに違いないと思います。

この問題を解決するにはどうすればよいですか?

ありがとう

注: htaccess および validate.php ファイルはルートに保存されます。

などなど。

4

5 に答える 5

1

問題は、Apache の.htaccessリダイレクトと承認を、目的のアプリケーション レベルの動作と混同していることです。少なくとも、 へのすべてのリクエストがにアクセスする前に.pdf呼び出されるスクリプトを通過するという事実に基づいて、ここで想定しているのはそれです。validate.php.pdf

あなたが物事を混同していると私が言うとき、そのような検証を強制するロジックは、あなたvalidate.phpの中にあるか、あなたのPHPアプリケーションのより大きなフレームワークの中にあるべきです. そのスクリプトはユーザーを検証する必要があり、Cookie やセッション変数などの検証スキームを設定した後、.pdfファイルがダウンロードされます。

つまり、これはあなたが説明した方法で答えるのが簡単な質問ではありません。

于 2013-11-14T16:22:52.843 に答える
1

このコードをDOCUMENT_ROOT/.htaccessファイルに入れます。

RewriteEngine On

RewriteRule \.pdf$ /validate.php [L,NC]
于 2013-11-14T16:20:22.123 に答える
1

これを .htaccess ファイルの < IfModule mod_rewrite.c > セクション内に追加します。

RewriteEngine On
RewriteRule ^ validate.php [L]
于 2013-11-14T16:21:57.937 に答える
0

それで全部です:

# Turn On RewriteEngine
RewriteEngine On
# Set RewriteBase 
RewriteBase /
# Redirect any http request to validate.php
RewriteRule . /validate.php [NC,L]
于 2013-11-14T16:20:32.753 に答える
-1
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ validate.php [L]

これはどうですか?

于 2013-11-14T16:37:08.577 に答える