4

.htaccess を使用して、あるフォルダーから別のフォルダーに URL をリダイレクトしようとしています。

たとえば、ユーザーが「forbiddenFolder」をリクエストした場合http://www.mysite.com/forbiddenFolder/subfolder

また

http://www.mysite.com/forbiddenFolder/somefile.phpまた

http://www.mysite.com/forbiddenFolder/somefile.swfまた

http://www.mysite.com/forbiddenFolder/somefile.f4v.

彼らはにリダイレクトする必要がありますhttp://www.mysite.com/forbidden.php

必要なリソースがあるため、ディレクトリ自体をロックダウンしたくありません。リダイレクトは、URL 文字列に基づいてのみ機能する必要があります。または、ユーザーが www.anothersite.com からスクリプトを作成し、http: //www.mysite.com/forbiddenFolder からファイルをリーチする場合にのみ機能します。

書き換え条件を実装する必要があると思います....?

4

1 に答える 1

5

これを試すことができます:

Options +FollowSymLinks -MultiViews                                        
RewriteEngine On                                                           
RewriteBase /                                                              
RewriteCond %{REQUEST_URI}  ^/forbiddenFolder     [NC]                     
RewriteCond %{REQUEST_URI}  /[\w]+\.(php|swf|f4v) [NC,OR]                  
RewriteCond %{REQUEST_URI}  /[^.]+/?$             [NC]                     
RewriteCond %{REQUEST_URI}  !forbidden\.php       [NC]                     
RewriteRule .*              /forbidden.php        [L,NC]  
                                                                       

内部でマップする

http://www.mysite.com/forbiddenFolder/subfolder また

http://www.mysite.com/forbiddenFolder/somefile.php また

http://www.mysite.com/forbiddenFolder/somefile.swf また

http://www.mysite.com/forbiddenFolder/somefile.f4v

に:

http://www.mysite.com/forbidden.php

永続的で目に見えるリダイレクトの場合は、次のように置き換え[L,NC]ます[R=301,L,NC]


オプション

着信 URL 構造が変更されています。

例えば:

http://localhost/trafficticket.tv/Sites/public_html/forbiddenFolder/somefile.swf

前のルール ブロックを次のルールに置き換えます。

Options +FollowSymLinks -MultiViews                                        
RewriteEngine On                                                           
RewriteBase /                                                              
RewriteCond %{REQUEST_URI}  /forbiddenFolder      [NC]                     
RewriteCond %{REQUEST_URI}  /[\w]+\.(php|swf|f4v) [NC,OR]                  
RewriteCond %{REQUEST_URI}  /[^.]+/?$             [NC]                     
RewriteCond %{REQUEST_URI}  !forbidden\.php       [NC]                     
RewriteRule .* /trafficticket.tv/Sites/public_html/forbidden.php [L,NC]

他の URL を使用するための唯一の要件は/forbidden.php、書き換えルールの先頭に正しいセグメント パスを追加することです。この場合、そのセグメントは

/trafficticket.tv/Sites/public_html

しかし、元の質問のように、何でもか何もない可能性があります。

于 2013-03-11T00:50:21.903 に答える