Url mod_rewrite删除干净网址上的连续尾部斜杠

时间:2012-12-27 05:01:41

标签: .htaccess mod-rewrite url-rewriting

你好我想从我的干净网址中删除任何尾部斜杠到目前为止我的htaccess有以下代码:

#php_flag display_startup_errors on
#php_flag display_errors on
#php_flag html_errors on

RewriteEngine on

<IfModule mod_gzip.c>
    mod_gzip_on       Yes
    mod_gzip_dechunk  Yes
    mod_gzip_item_include file      \.(html?|txt|css|js|php|pl|jpg|png|gif)$
    mod_gzip_item_include handler   ^cgi-script$
    mod_gzip_item_include mime      ^text/.*
    mod_gzip_item_include mime      ^application/x-javascript.*
    mod_gzip_item_exclude mime      ^image/.*
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

Options -Indexes

RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)(.*)$ /index.php?page=$1&request=$2

#GAMW TON OHANAH
RedirectMatch 301 ^/component/(.*)$ http://www . evented . gr


ErrorDocument 404 /error.php?e=404
ErrorDocument 400 /error.php?e=400
ErrorDocument 401 /error.php?e=401
ErrorDocument 403 /error.php?e=403
ErrorDocument 405 /error.php?e=405
ErrorDocument 408 /error.php?e=408
ErrorDocument 410 /error.php?e=410
ErrorDocument 411 /error.php?e=411
ErrorDocument 412 /error.php?e=412
ErrorDocument 413 /error.php?e=413
ErrorDocument 414 /error.php?e=414
ErrorDocument 415 /error.php?e=415
ErrorDocument 500 /error.php?e=500
ErrorDocument 501 /error.php?e=501
ErrorDocument 502 /error.php?e=502
ErrorDocument 503 /error.php?e=503
ErrorDocument 506 /error.php?e=506

如果您愿意,可以通过访问www来观察奇怪的行为。事情。克

PS。我想要在两者之间没有任何内容的连续斜线用0斜线替换 例如www.domain.com//////到www.domain.com 或www.domain.com/events//////到www.domain.com/events

我尝试过以下但没有运气

RewriteCond %{REQUEST_URI} ^(.*?)(?:/){2,}$
RewriteRule . $1/ [R=301,L]

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

1 个答案:

答案 0 :(得分:0)

你不能用mod_rewrite做到这一点。在应用规则时,apache已经规范化了URI,删除了所有重复的斜杠。如果您要求:

http://www.evented.gr//////a////////b/////c/////d///////

mod_rewrite看到的URI是:

/a/b/c/d/

你必须想出一个不同的解决方案。最好的办法是在源头修复此问题,不要首先使用具有重复斜杠的URL进行部署。