37

スペースが含まれる URL をリダイレクトするには、いくつかの RewriteRules をセットアップする必要があります。私はこれを試しました:

RewriteRule ^article/with%20spaces.html$ /article/without_spaces.html [R=301,L]

...しかし、うまくいきません。%20 の代わりにスペースを入れると、500 内部サーバー エラーが発生します。スペースを追加するにはどうすればよいですか?

4

5 に答える 5

57

エスケープするには、スペースの前に \ を入れてみてください。

RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]
于 2009-01-04T10:45:40.980 に答える
13

\ でスペースをエスケープできます

RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]
于 2009-01-04T10:46:09.093 に答える
11

各スペースをエスケープする複雑さを避けたい場合 (たとえば、このファイルを自動的に生成する予定の場合) は、単純に引用符を使用できます。

RewriteRule "^article/with spaces.html$" /article/without_spaces.html [R=301,L]

さらに、これらの引用符を使用して、予想される引数を 1 つ囲むことができます。

RewriteRule "^article/with spaces.html$" "/article/without_spaces.html" [R=301,L]
于 2013-01-14T16:15:07.503 に答える
9
RewriteRule ^article/with[\ |%2520]spaces.html$ /article/without_spaces.html [R=301,L]

最初のオプションはスペースを置き換え、2 番目のオプションは URL のハードコードされた %20 を置き換えます。

于 2012-04-29T17:44:28.553 に答える
1

ああ、私は解決策を見つけました:正規表現スタイルを使用してスペースを表示します:

RewriteRule ^article/with\sspaces.html$ ...

ただし、これは他のすべての空白文字 (タブなど) にも一致すると思われますが、それほど問題にはならないと思います。

于 2009-01-04T10:45:07.550 に答える