1

ここには、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 ")を保持したいと思います。

これは可能ですか?

4

1 に答える 1

1

私はこれを試しませんでしたが、ドキュメントには、置換に URL パスを使用できると記載されています。

http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule

私の推測では、あなたのルールは次のようになります。

RewriteRule ^cms/mysite/files(.*)$ /fileManager/server/php/files$1 [L]
于 2013-03-14T12:52:43.007 に答える