1

この設定のページがあります:

Options All -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /demo/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !^(.*)show(/|.*)$
RewriteRule . /demo/index.php [L]
</IfModule>

たとえば、ページhttp://example.com/demo/any_folder/をリクエストすると、URL を変更せずにhttp://example.com/demo/index.phpをロードして、たとえばデータベースからデータを取得します。まあ、これはうまくいきます。しかし、私は例外を追加したいと思います。http://example.com/demo/any_folder/showにアクセスすると、同じ URL が読み込まれ、「表示」という単語が削除されますが、実際に定義されているリダイレクトは回避されるという条件が必要です。したがって、 http://example.com/demo/any_folder/ をロードし、 http://example.com/demo/index.phpはロードしません。誰もこれを行う方法を知っていますか?

4

1 に答える 1

1

にリダイレクトされないようにするには、URL に何らかの違いがある必要がありますindex.php。次の.htaccessコードは、クエリ パラメーターを追加?showして、2 つの URL を区別します。

リダイレクトは内部的なものです。ユーザーはパラメーターを見ることができません。

RewriteEngine On
RewriteBase /demo/

RewriteRule ^index\.php$ - [L]
RewriteRule ^(.*)/show/?$ $1?show [NC,QSA,L]

RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{QUERY_STRING} !^show [NC]
RewriteRule . /demo/index.php [L]
于 2013-08-15T03:57:30.727 に答える