我需要設置一些RewriteRules來重定向一個URL,該URL中有一個空格。我試過這個:帶有空格的mod_rewrite
RewriteRule ^article/with%20spaces.html$ /article/without_spaces.html [R=301,L]
...但它不起作用。放入空格而不是%20會導致500內部服務器錯誤。我如何添加空間?
我需要設置一些RewriteRules來重定向一個URL,該URL中有一個空格。我試過這個:帶有空格的mod_rewrite
RewriteRule ^article/with%20spaces.html$ /article/without_spaces.html [R=301,L]
...但它不起作用。放入空格而不是%20會導致500內部服務器錯誤。我如何添加空間?
嘗試在你的空間前放一個\來逃避它。
RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]
啊,我已經找到了解決辦法:使用正則表達式的風格展現出空間:
RewriteRule ^article/with\sspaces.html$ ...
雖然,我懷疑這會匹配所有其它空白字符太(標籤等),但我認爲這不會有什麼問題。
你可以只用一個\
RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]
RewriteRule ^article/with[\ |%2520]spaces.html$ /article/without_spaces.html [R=301,L]
躲避空間中的第一選項替換空間,而第二替換URL中的硬編碼的20%。
這應該得到最高票數。可惜!時間取決於選票。 – 2016-04-01 08:46:20
如果你想避免逃逸每個空間的複雜性(例如,如果你打算讓這個文件自動生成),你可以簡單地使用引號:
RewriteRule "^article/with spaces.html$" /article/without_spaces.html [R=301,L]
而且,這些報價可以用來包住任何一個預期的論點:
RewriteRule "^article/with spaces.html$" "/article/without_spaces.html" [R=301,L]
乾杯!我應該想到它會是這樣簡單的事情。 – nickf 2009-01-04 10:58:59