[英]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.