0

この質問に基づいて構築: URL のフォルダー名の場合は .htaccess リダイレクト私は、CakePHP アプリの webroot の .htaccess で、そこで考慮される .htaccess ルールを適用する方法を知りたいです。サーバーエラーを生成したり、CakePHP 書き換え機能を失ったりすることはありません。

私の CakePHP のバージョンは 1.2.10で、webroot の .htaccess は次のとおりです。

#app/webroot/.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
AddType audio/mpeg mp3

ファイルを含むサブフォルダーを持つオーディオフォルダーがあるため、これが必要です。mp3 ファイルに直接アクセスしようとしたり、外部の Web サイトから別のページにリダイレクトしたりしたときに、が自分の Web サイトのページからファイルを再生できるようにしたい。したがって、次のように仮定します。

http://mycake.com/audio/folderX/fileY.mp3 http://mycake.com/audio/ のアクセスをすべてhttp://mycake.com/mistakeSound.mp3にリダイレクトしたい *

4

2 に答える 2

1

htaccessファイルでは、規則と条件が同じ要求に適用される場合、規則の順序が重要です。リクエスト URL が異なるルールによって処理される場合は、ルールを任意の順序で配置できます。

あなたの場合、他の質問には実際のファイルがあり、この質問には存在しないファイルとディレクトリがあります

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

つまり、CakePHP ルールの前後に他のルールを挿入できます。

于 2013-04-23T15:30:34.817 に答える
0

関連するオーディオフォルダーに.htaccessファイルを配置することに依存する解決策を見つけました。その .htaccess の構文は次のようになります。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mycake\.com [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mycake\.com.*$ [NC] 
RewriteRule \.(gif|jpg|mp3)$ - [R=401]
ErrorDocument 401 /e401.html

たとえば、誰かがhttp://mycake.com/audio/folderX/fileY.mp3経由で mp3 ファイルにアクセスしようとした場合。401 エラーが生成されます。

しかし、 FDMはこのファイルにアクセスしてダウンロードできることに気付きました。リダイレクトは Web ブラウザーでのみ機能します。

于 2013-04-27T12:52:02.107 に答える