用连字符替换空格,%20和+

Wur*_*bro 3 apache .htaccess mod-rewrite

可能重复:
301重定向空格

现在我将每个图像点击重定向到包含图像的html页面.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.com/.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} (bing.com|google|yahoo|stumbleupon.com|reddit.com|pinterest.com) [NC]
RewriteRule (.*)\.(gif|jpg|png)$ /$1.html [R,L]
Run Code Online (Sandbox Code Playgroud)

由于图像通常包含空格但html页面总是使用连字符,我需要一个解决方案来用连字符替换所有空格,%20和+符号

Wur*_*bro 5

301重定向将所有空格替换为连字符

解决了这个问题

RewriteEngine On
RewriteCond %{THE_REQUEST} (\s|%20)
RewriteRule ^([^\s%20]+)(?:\s|%20)+([^\s%20]+)((?:\s|%20)+.*)$ $1-$2$3 [N,DPI]
RewriteRule ^([^\s%20]+)(?:\s|%20)+(.*)$ /$1-$2 [L,R=301,DPI]
Run Code Online (Sandbox Code Playgroud)