簡體   English   中英

使用重寫規則.htaccess替換URL中的特殊字符

[英]Replace special characters in URL using rewrite rule .htaccess

我正在通過重寫我的網址

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
RewriteCond %{QUERY_STRING} ^search_query=(.+)$ 
RewriteRule ^search/videos$ /search/videos/%1? [R=301,L]

XXX.XXX.XXX.XX/search/videos?search_query=XXXX+XXXXXXX.XXX.XXX.XX/search/videos/XXXX+XXXX

現在的問題是我想用連字符將“ +”替換為“-”空格(+)。 我已經嘗試了下面的代碼,但沒有用。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.*?)(?:\+|%20|\s)+(.+?)\sHTTP [NC]
RewriteRule ^ %1-%2 [L,NE,R=302]

我上面的代碼用連字符替換空間,但是我想與下面的代碼集成。

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
RewriteCond %{QUERY_STRING} ^search_query=(.+)$ 
RewriteRule ^search/videos$ /search/videos/%1? [R=301,L]

我有上述查詢的解決方案,我有這樣寫重寫規則。

首先將您想要的URL轉換為所需的URL,然后從URL中刪除特殊字符。

RewriteCond %{QUERY_STRING} ^search_query=(.+)$ 
RewriteRule ^search/videos$ /search/videos/%1? [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.*?)(?:\+|%20|\s)+(.+?)\sHTTP [NC]
RewriteRule ^ /%1-%2 [L,NE,R=302]

暫無
暫無

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

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