0

私は現在、以前の開発者によって構築された Web サイトに取り組んでいます。この Web サイトは以前に、URL ファイル名にスペースを含むリンクをサブスクライバーに送信しています (例: http://website.com/docs/this is a pdf.pdf. リンクの生成時にphp urlエンコーディングを使用して生成されるため、これらのリンクを修正しました。特に、ファイル名にスペースが含まれているため、インターネットエクスプローラーのユーザーがLinuxサーバーでファイルを見つけられないためです(chromeとFFは、適切に挿入することで機能します%20 を URL のスペースに挿入します)。

現在、.htaccess を使用してスペースを含むこれらの URL を書き換え、正しい URL にリダイレクトする方法を見つけようとしています。たとえば、ユーザーがリクエストした場合http://website.com/docs/this is a pdf.pdf、.htaccess は にリダイレクトされhttp://website.com/docs/this%20is%20a%20pdf.pdfます。このサーバーには何千ものドキュメントがあるため、動的である必要があることに注意してください。

私は何を試しましたか?

私はこれこれなどを見てきましたが、十分な評判がないとSOが言っているので、これ以上リンクを追加することはできません.

これらのオプションは、ファイル名がどうなるかを事前に知っていれば可能であることを示しているようです。これを動的にする必要があります。アイデアはありますか?

4

1 に答える 1

0

エスケープされたスペースを中かっこの中に入れます。たとえば..

RewriteRule ^(.+)(\ )(.+)(\ )(.+)(\ )(.+)\.pdf /$1-$3-$5-$7.pdf

「any four word file.pdf」の要求をキャッチし、/any-four-word-file.pdf に書き換えます。

;o) コー

于 2013-08-19T12:15:03.130 に答える