服务器名称后有两个或多个斜杠 - mod_rewrite
Two or more slashes after server name - mod_rewrite
我有一个小问题:
http://server//file
这两条斜线怎么去掉?我尝试用这种方法来做:
RewriteCond %{REQUEST_URI} ^/{2,}$ [NC]
RewriteRule . / [R,L]
但是不行。
我的 .htaccess 文件:
RewriteEngine on
RewriteBase /
# hide .php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
# remove multi trailing slashes, for simple x/y/ => x/y
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ / [R,L]
# remove more than one slashes when they are in link, for simple x//y => x/y
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule . %1/%2 [R,L]
# rewrite all links server/x to server/x.php
RewriteRule ^([^/]+).* .php [L]
这应该将两个斜杠(或更多)转换为一个斜杠:
RewriteCond %{REQUEST_URI} \ (.*)//+(.*)\
RewriteRule .* %1/%2 [R,L]
您可以使用:
RewriteEngine on
RewriteBase /
# hide .php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
# remove multi trailing slashes, for simple x/y/ => x/y
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ / [R,L]
# remove more than one slashes when they are in link, for simple x//y => x/y
RewriteCond %{THE_REQUEST} //
RewriteRule ^(.+?)/?$ / [R,L,NE]
# rewrite all links server/x to server/x.php
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}\.php -f [NC]
RewriteRule ^(.+?)/?$ .php [L]
我有一个小问题: http://server//file
这两条斜线怎么去掉?我尝试用这种方法来做:
RewriteCond %{REQUEST_URI} ^/{2,}$ [NC]
RewriteRule . / [R,L]
但是不行。
我的 .htaccess 文件:
RewriteEngine on
RewriteBase /
# hide .php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
# remove multi trailing slashes, for simple x/y/ => x/y
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ / [R,L]
# remove more than one slashes when they are in link, for simple x//y => x/y
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule . %1/%2 [R,L]
# rewrite all links server/x to server/x.php
RewriteRule ^([^/]+).* .php [L]
这应该将两个斜杠(或更多)转换为一个斜杠:
RewriteCond %{REQUEST_URI} \ (.*)//+(.*)\ RewriteRule .* %1/%2 [R,L]
您可以使用:
RewriteEngine on
RewriteBase /
# hide .php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
# remove multi trailing slashes, for simple x/y/ => x/y
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ / [R,L]
# remove more than one slashes when they are in link, for simple x//y => x/y
RewriteCond %{THE_REQUEST} //
RewriteRule ^(.+?)/?$ / [R,L,NE]
# rewrite all links server/x to server/x.php
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}\.php -f [NC]
RewriteRule ^(.+?)/?$ .php [L]