簡體   English   中英

如果使用GET參數則重寫URL

[英]URL Rewrite if GET parameter

當其中有一個特殊參數時,例如/ post / path /?code = 1重定向到/ post / path /,我想將URL重定向/ RewriteRule。

我不知道,但這在這里不起作用

RewriteEngine on
RewriteBase / 
RewriteRule ^.*code=1.*$ /post/path/ [L]

如果我運行http://domain.com/post/path/?code=4/oWTYGaoOsyts,則不會有任何變化。

[REQUEST_URI] => /post/path/?code=1/oWTYGaoOsyts
[SCRIPT_NAME] => /index.php
[PHP_SELF] => /index.php

要在URL中搜索參數,您需要使用RewriteCond和%{QUERY_STRING}:

RewriteCond %{QUERY_STRING} ^.*code=1.*$
RewriteRule .* /post/path/ [L]

文檔中

語法:RewriteRule模式替換[標志]

在Directory和htaccess上下文中,在刪除導致服務器到達當前RewriteRule的前綴(例如,“ app1 / index.html”或“ index.html”,具體取決於指令所在的位置)之后,Pattern將首先與文件系統路徑進行匹配。定義)。

如果希望與主機名,端口或查詢字符串匹配,請分別使用RewriteCond和%{HTTP_HOST},%{SERVER_PORT}或%{QUERY_STRING}變量。

因為您正在搜索code=1並且您通過code=4

這應該在給定的輸入下工作

RewriteRule ^.*code=4.*$ /post/path/ [L]

請注意,它可以匹配意外的網址,例如code=40somecode=4

暫無
暫無

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

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