mod_rewrite在url中有空格

nic*_*ckf 36 apache url mod-rewrite

我需要设置一些RewriteRules来重定向一个有空格的URL.我试过这个:

RewriteRule ^article/with%20spaces.html$ /article/without_spaces.html [R=301,L]
Run Code Online (Sandbox Code Playgroud)

......但它不起作用.放入空格而不是%20会导致500内部服务器错误.如何添加空间?

Bea*_*sen 57

尝试在你的空间前放一个\来逃避它.

RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]
Run Code Online (Sandbox Code Playgroud)

  • 干杯!我应该认为这样的事情很简单. (2认同)

Ric*_*ams 13

你可以用一个\逃脱空间

RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]
Run Code Online (Sandbox Code Playgroud)


小智 10

如果你想避免逃避每个空间的复杂性(例如,如果你打算自动生成这个文件),你可以简单地使用引号:

RewriteRule "^article/with spaces.html$" /article/without_spaces.html [R=301,L]
Run Code Online (Sandbox Code Playgroud)

此外,这些引号可用于包含任何一个预期参数:

RewriteRule "^article/with spaces.html$" "/article/without_spaces.html" [R=301,L]
Run Code Online (Sandbox Code Playgroud)


Abr*_*fle 8

RewriteRule ^article/with[\ |%2520]spaces.html$ /article/without_spaces.html [R=301,L]
Run Code Online (Sandbox Code Playgroud)

第一个选项替换空格,而第二个选项替换url中的硬编码%20.