私が欲しいもの:
/file_new.pdf を /file new.pdf に 301 リダイレクトするには ( file と new の間の %20 別名スペース)
私はそれを知っています:
- このスレッドの解決策を使用して、mod_rewrite を使用する RewriteRule 301 に頼ることができます: URL にスペースを含む @ mod_rewrite
- スペースを含まないようにファイルの名前を変更し、それらをダッシュ/アンダースコアに置き換えることができます
しかし、私は個人的にこれをどのように行うかについて興味があります。これが私がこれまでに持っているものです:
Redirect 301 /file_new.pdf http://sitename.com/file\ new.pdf
configtest を呼び出すと、conf ファイル パーサーがエラーをスローします。
Redirect は 2 つまたは 3 つの引数、オプションのステータス、リダイレクトするドキュメント、および宛先 URL を取ります。
編集: mod_rewrite メソッドも Redirect 301 メソッドも機能しているようです。おそらく、ファイルが実際にその場所に存在するために何らかの理由で適用されていないためです。
<VirtualHost *:80>
DocumentRoot /www/sitename_com
ServerName site.local
Options -MultiViews
RewriteEngine on
Redirect 301 /pdf/file_new.pdf http://site.local/pdf/file%20new.pdf
RewriteRule ^/pdf/file_new.pdf http://site.local/pdf/file\ new.pdf
RewriteLog "/www/rewrite.log"
</VirtualHost>
rewrite.log では、パターンをそれぞれの uri / http リクエストに一致させようとします。mod_alias/mod_rewrite に到達する前に、何かが制御されていると思います。
要約すると、ブラウザの file_new.pdf に直接移動し、301 ではありません。私はそれを確信してalias
おりrewrite
、有効になっています。私のApacheのバージョンは2.2です。