我需要在请求的网址的文件名中替换%20个空格。
我正在使用此正则表达式:^(.*)\s(.*)$
替换Url中的所有空格。我无法使其仅适用于文件名。
http://example.com/subfolder/One More Sub Folder/Onother Sub Folder/File%20test%20example.jpg
我在wordpress下,我需要一个RewriteCondition和RewriteRule来实现这个目标:
http://example.com/wordpress/subfolder/One More Sub Folder/Onother Sub Folder/File-test-example.jpg
我也需要替换htm请求,但我也需要从文件名中删除html扩展名。
所以现在我有这些适用于html的规则:
RewriteCond %{THE_REQUEST} (\.htm|\.html)
RewriteRule ^(.*)(\.htm|\.html)$ http://www.example.com/wordpress/$1 [R=301,L]
这些用于重定向jpg:
RewriteCond %{REQUEST_URI} !^/wordpress/wp-content/uploads/
RewriteRule ^(.*\.jpg)$ /wordpress/wp-content/uploads/2016/02/$1 [R=301,L]
在htaccess文件的开头,我有wp slug工作所需的小写转换:
<IfModule mod_speling.c>
CheckSpelling on
</IfModule>
答案 0 :(得分:0)
如果这些是现有文件,您可以使用以下规则将%20替换为 - :
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)\s(.*)$ /$1-$2 [NC,L,R]
该规则仅适用于现有文件。
答案 1 :(得分:0)
你试过RewriteRule ^(.*)(%20)(.*)$ /$1-$2 [R=301,NE,L]
吗?