ここには、RewriteRules、相対パス、およびURLを変更せずにリダイレクトすることに関して多くの質問があるようですが、私の検索のすべてで、それらのどれも私の特定のシナリオに答えていないようです。
これが私の現在の.htaccessファイルです:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond {REQUEST_FILENAME} !^images
RewriteRule ^files(.*)$ ../../fileManager/server/php/files$1 [L]
基本的に、これが行っているのは、誰かが入力したURLのルートディレクトリの後に「files」という単語が含まれている場合、実際にはファイルが含まれている2つのディレクトリの上のパスにリダイレクトされます。
たとえば、「http://www.example.com/files/username/myImage.jpg」にアクセスすると、実際には「http://s281192971.onlinehome.us/cms/fileManager/server/ 」にリダイレクトされます。 php / files / username /myImage.jpg "。
これの問題は、ローカルではうまく機能することですが、サーバーにアップロードすると機能しなくなります。
これを回避する方法の1つは、ファイルパスへの絶対パスを次のように指定することでした。
RewriteRule ^files(.*)$ http://s281192971.onlinehome.us/cms/fileManager/server/php/files$1 [L]
そして、それは「機能」しますが、問題は、URLも変更することです。絶対パスではなく、ユーザーが入力したURL( http://www.example.com/files/username/myImage.jpg ")を保持したいと思います。
これは可能ですか?