繁体   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