簡體   English   中英

htaccess 301使用參數重定向URL

[英]htaccess 301 redirect for URL with parameter

我的htaccess文件中包含以下內容,該文件的網址類似:www.example.com/Page.php?id=About,並將其轉換為www.example.com/about。 唯一的問題是,當我在htaccess中設置重定向301時,舊的URL不會重定向到新的URL(我知道這是因為您不應該在基本的重定向301中傳遞參數-我使用的基本重定向的示例ve嘗試過以下)。

Redirect 301 /Page.php?id=About http://www.example.com/about

要注意的是,新的URL不一定只是去除當前ID,而是將其替換為小寫版本。 例如,我還想:

Redirect 301 /Page.php?id=Example http://www.example.com/example-page

我想保留當前重寫URL的功能,但也希望對舊URL的任何訪問都重定向到新URL(即更新Google索引)。 目前訪問www.example.com/Page.php?id=About仍然有效,但顯示的頁面沒有內容。

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([a-zA-Z0-9\-]+)/?$ Page.php?id=$1
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2&tabid=$3

如果將此規則添加到.htaccess中,則它應完成重定向的工作。 它將?id = About添加到/ about的重定向中。 如果您在2.4.0或更高版本上運行,則可以添加QSD標志以放棄重定向中的查詢字符串。

RewriteCond %{QUERY_STRING} ^id=About$
RewriteRule ^page.php /about [NC,R,L]

暫無
暫無

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

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