[英]htaccess 301 redirect with a dynamic page?
在htaccess中,您如何301重定向動態頁面?
例如,如果我想要使/get.php?i=1234
重定向到/i/1234
等的規則怎么辦?
您可以像下面的代碼一樣使用mod_rewrite進行重定向:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^(i)=([^&]+)(&|$) [NC]
RewriteRule ^get\.php$ %1/%2? [L,R=301,NC]
使用正則表達式嘗試RedirectMatch指令 。 它取決於mod_alias,因此可能始終處於啟用狀態。 您也可以使用mod_rewrite,但這可能會過大。 替換內容可能包含$ n形式的引用:
RedirectMatch 301 ^/get\.php\?i=([0-9]+)$ /i/$1
可以想象, $1
是對括號#1中匹配的內容的引用 。 您可以有許多參考資料:
RedirectMatch 301 ^/get\.php\?i=([0-9]+)&y=([0-9]+)$ /i/$1/$2/
您可以使用在線正則表達式測試儀來詳細說明您的apache配置:如果我在“ Regexp”中放入^/get\\.php\\?i=([0-9]+)&y=([0-9]+)$
輸入,然后在“主題字符串”輸入中/get.php?i=12&y=24
,然后單擊“顯示匹配項”,它顯示:
Match at position 0:
/get.php?i=12&y=24
12 # first reference available
24 # second reference available
如果您的正則表達式在測試儀中不起作用,則它們不太可能在apache配置中工作。 您應該首先在測試儀中嘗試它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.