几年前,我们所有的Apache配置文件都更改为到处都带有空格(请参见下文,不知道是谁做的)。由于我是从2.2升级到2.4,因此很难找到并替换所有必需的配置更改。
我想摆脱中间的空格,但将空格留在前面。我知道如何在开始,结束和各处替换。我什至查阅过几本书(例如Jeff Friedl的regexp),但我无法理解这一点-甚至不确定这是否可能。
<Directory "THEDIRECTORY">
<LimitExcept GET POST>
deny from all
</LimitExcept>
Options -Indexes -MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
我想要的是
<Directory "THEDIRECTORY">
<LimitExcept GET POST>
deny from all
</LimitExcept>
Options -Indexes -MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
因此我可以轻松搜索并替换Apache 2.4的配置更改
我以为是末路
s/\s+(.*)\s+(.*)\s+$/$1$2/g
但是,由于许多原因(包括替换的数量发生变化,它们是非固定的数量),因此无法使用。
请帮助,我一无所知。
答案 0 :(得分:1)
您可以使用此正则表达式一次匹配两个或多个水平空白,并将其替换为单个空格。
(?<=\S)\h{2,}(?=\S)
此正则表达式确保使用\S
仅匹配由非空格字符包围的空格
如果您的正则表达式不支持\h
,则可以仅使用空格代替\h
并将正则表达式写为
(?<=\S) {2,}(?=\S)
答案 1 :(得分:0)
请确保将以下行添加到.htaccess或apache conf文件目录标签(如果尚不存在的话):
RewriteEngine On
然后在下面添加
RewriteCond%{REQUEST_URI} \ s
RewriteRule。* https://DOMAIN_NAME/ [R = 301,L]
替换DOMAIN_NAME。