0

こんにちは、htaccess に次のコードがあるので、きれいな URL から末尾のスラッシュを削除したいと思います。

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

1 に答える 1

0

これは mod_rewrite ではできません。ルールが適用されるまでに、Apache はすでに URI を正規化しており、重複するスラッシュはすべて削除されています。リクエストを行う場合:

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

mod_rewrite が認識する URI は次のとおりです。

/a/b/c/d/

別の解決策を考え出す必要があります。最善の方法は、ソースでこれを修正することです。そもそもスラッシュが重複している URL を使用してデプロイしないでください。

于 2012-12-27T07:08:16.377 に答える