簡體   English   中英

Apache RedirectMatch 與正則表達式

[英]Apache RedirectMatch with Regex

我試圖將每個沒有# URL 重定向到相同的 URL,但在/path/之后帶有#

示例:

這個網址: https://www.example.com/path/test/test : https://www.example.com/path/test/test

需要重定向到這個網址: https://www.example.com/path/#/test/test : https://www.example.com/path/#/test/test

所以我寫了這個重定向匹配:

RedirectMatch permanent ^/path/(?!#)(.*)$ /path/#/$2

但它不起作用。

瀏覽器向我顯示此消息: ERR_TOO_MANY_REDIRECTS

您可以在站點根目錄 .htaccess 中使用此規則:

RewriteEngine On

RewriteRule ^/?(path)/(.+)$ /$1/#/$2 [L,NE,NC,R=301]

它會將/path/test/test重定向到/path/#test/test

無需在RewriteRule檢查#是否存在,因為客戶端瀏覽器無論如何都不會將#之后的任何部分發送到 Web 服務器。

你可以試試這個:

RedirectMatch ^/path/([^#]+)$ /path/#/$1

捕獲的組([^#]+)表示任何字符串,最少 1 個字符,不包含#

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM