相关疑难解决方法(0)

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

可能重复:
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和+符号

apache .htaccess mod-rewrite

3
推荐指数
1
解决办法
5928
查看次数

htaccess干净的网址和替换空格和%20与 -

我很努力地做这项工作.目前我的htaccess包含以下代码:

#Debugging - Error reporting
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on

#Commpression
<ifmodule mod_deflate.c="">
    <filesmatch ".(js|css|html|png|jpg|jpeg|swf|bmp|gif|tiff|ico|eot|svg|ttf|woff|pdf)$"="">
        SetOutputFilter DEFLATE
    </filesmatch>
</ifmodule>

Options All -Indexes +FollowSymLinks -MultiViews

<IfModule mod_rewrite.c>
    # Turn mod_rewrite on
    RewriteEngine On
    RewriteBase /

    #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]

    #RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !^.*\.(png|jpg|bmp|gif|css|js)$ [NC]
    RewriteRule ^([^/]+/?.+)$ /index.php?req=$1 [L,QSA]

</IfModule>
Run Code Online (Sandbox Code Playgroud)

如果我尝试这个网址,一切都很有效,除了一件事:

http://www.domain.com/ test/
Run Code Online (Sandbox Code Playgroud)

浏览器将其转换为:http://www.domain.com/%20test/ 基本上在域之后如果路径以空格开头或%20则失败.任何人都可以指出一个解决方案,其中起始空间将被删除?

UPDATE

目标:

www.domain.com/   this is a      test      / …
Run Code Online (Sandbox Code Playgroud)

.htaccess

3
推荐指数
1
解决办法
5987
查看次数

标签 统计

.htaccess ×2

apache ×1

mod-rewrite ×1