1

たとえば、ユーザーはhttp://example.com/hereにアクセスできませんが、さらに追加されたものにはアクセスできます。例はhttp://example.com/her?action=blah blah です。

これのポイントは、ページに直接アクセスしてファイルにアクセスできないようにすることですが、より多くのアクション/リンクを追加してファイルを使用できるようにすることです。

迅速な対応に感謝したいだけです。私が得た答えに基づいて、私はphpを使いましたが、うまくいきました。

私は以下を使用しました:

function access_granted(){
 global $pagenow;
 if(!isset($_GET['action']) && 'wp-login.php' == $pagenow ) {
  wp_redirect('http://example.com/');
  exit();
 }
}

ただし、1 つ質問があります。wp-login.php の URL をhttp://example.com/wp-login.phpではなくhttp://example.com/hereに変更しました。

私の問題は、関数 access_granted が機能しなくなったことです。私の推測では、$pagenow です。

wp-login.php の代わりに url/here を確認する方法など、何か提案はありますか?

4

5 に答える 5

2

.htaccess に行きたい場合は、これを行います。mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^here/?$ - [NC,L,F]

/hereこれはorに対して禁止されたエラーをスローしますが、URI のタイプ/here/は許可します。/here?bar=foo

于 2013-04-01T18:04:33.930 に答える
1

example.com/here は PHP スクリプトで処理されますか? その場合は、スクリプトの開始時に入力の検証を行い、要件を満たしていない場合は、エラー ページを表示するかリダイレクトします ( http://php.net/manual/en/function.http-redirect. php ) 別のページに移動します。

于 2013-04-01T17:54:06.590 に答える
1

URL に何かが追加された場合に機能させたい場合は、/here が PHP によって処理される場合にこれを使用できます。

 <?php
  if(!$_GET){
         die('You are not allowed to access this URL.');
   }
   else {
     ... PHP code that will execute in case the user is allowed to access the URL(you can also use HTML by just having ?> here instead and add <?php } ?> at the end of the document)  ...
  }
 ?>

それが役に立ったことを願っています。

于 2013-04-01T18:14:50.830 に答える
1

はいあります。htaccess を扱う必要は実際にはありません。php で行うことができます。まず、必要なオプションが設定されているかどうかを確認する必要があります。たとえばGET、名前付きのプロパティがある場合、関数actionを使用して設定されているかどうかを確認できissetます。カスタム HTTP 403 ページを指定して、ユーザーをそのページにリダイレクトする必要もあります。actionが未定義の場合に禁止エラーを表示する例を次に示します。

<?php
if (!isset($_GET['action'])) {
   header('HTTP/1.0 403 Forbidden',403);
   header('Location: 403.html');
   exit;
}
?>

次のリンクも役立つ場合があります: How to display Apache's default 404 page in PHP

于 2013-04-01T18:00:31.223 に答える
0

もちろん、これには PHP を使用できます。here.php では、コードの先頭に (この例では) 次のような行が必要です。

if(!isset($_GET['action']){
     header('location:/notallowed.php');
     exit;
}

notallowed.php は、完全なリンクがない場合に表示したいものです。

于 2013-04-01T17:57:27.457 に答える