2016-03-26 10 views
1

私はこれを非常に長い間把握しようとしましたが、まだ傾けていません。私はhtaccess get filename without pathを試しましたが、それは私のためには機能しません。htaccessファイルと拡張子なしのパスを取得

は、ここで私はhttp://example.com/subでその画像やファイルに対する要求があった場合、画像がhttp://example.com/sub/imgsに存在するかどうかを見つけることを試みている私のディレクトリ

/www 
|-- /other.org 
|-- /example.com 
    |-- /sub 
     |-- .htaccess 
     |-- success.html 
     |-- /imgs 
      |-- photo.png 

です。存在する場合、ユーザーはsuccess.htmlにリダイレクトされます。しかし、私はそれをすることはできません。例えば

Iブラウザ

http://example.com/sub/photo.png 

に入力する場合は、ファイルphoto.png又は画像の任意の種類は/sub/imgs/photo.pngに存在する場合、それが存在しないといけないんチェック/サブディレクトリに存在する。

http://example.com/sub/imgs/photo.png 

リダイレクトされた出力はsuccess.html(存在する場合)になります。

http://example.com/sub/success.html 

私は

RewriteCond %{DOCUMENT_ROOT}/sub%{REQUEST_URI} -f 
RewriteRule (.*)\.(gif|jpg|jpeg|png)$ success.html 

を試みたが、%{REQUEST_URI}/sub/photo.pngあるので、出力はhttp://example.com/sub/imgs/sub/photo.pngになります。最後のスラッシュ(/)の後にファイル名や何かを得ることができる要求はありません。単にファイル名photo.pngを取得することが可能ですので、私はちょうど行うことができます。

RewriteCond %{DOCUMENT_ROOT}/sub/imgs%{FILE_NAME} -f 
RewriteRule (.*)\.(gif|jpg|jpeg|png)$ success.html 

は、この作業を取得する方法はありますか?

+0

'するRewriteCond%{DOCUMENT_ROOT} /サブ/ IMGS/$ 1〜F のRewriteRule^+ /(+ \ JPEG | PNG | GIF。。?)。 $ /redirect.html [L] ' – starkeen

+0

@starkeenこんにちは、私のために働かない、いくつかのディレクトリエラーを修正するために質問を編集しました。私はディレクトリに入った方法がちょうど間違っていたと思う。 – pleasega

答えて

1

あなたはsub/.htaccessにこのルールを試すことができます。

RewriteEngine On 
RewriteBase /sub/ 

RewriteCond %{DOCUMENT_ROOT}/sub/imgs/$1 -f 
RewriteRule ^(.+\.(?:jpe?g|png|gif|tiff|ico))$ success.html [L,NC] 
+1

こんにちは、ありがとう! – pleasega

+0

こんにちは、最後の行が何をしているのか分かりますか? – pleasega

+0

最後の行は、これらの拡張子 'jpe?g | png | gif | tiff | icoのいずれかで終わるイメージ名にマッチします(' '|' | ' '。 '(?:..)'は非捕捉グループと呼ばれます – anubhava

関連する問題