网站重新启动:重写旧的“?id = 123”网址

时间:2017-10-17 12:36:48

标签: apache .htaccess mod-rewrite url-redirection

网站重新启动后,我需要一个mod_rewrite解决方案来防止“找不到页面”错误。该网站的旧版本使用以下网址进行操作:

http://domain-name.tld/index.php?id=123

我希望有一个重写规则可以使用这样的模式:

  

“http://”或“https://”+“domain-name.tld”+ * +“id =”+ number - > “http://”或“https://”+“domain-name.tld”+文档根目录+状态代码“301”

由于我没有mod_rewrite的经验,也没有找到类似的例子,我会感激每一个提示!

编辑:

我的临时解决方案如下:

RewriteCond %{HTTP_HOST} ^domain-name\.tld [NC]
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^(.*) http://domain-name.tld/? [R=301,L]

到目前为止,这是有效的,但理想情况下我希望保留协议(http / https)变量。

1 个答案:

答案 0 :(得分:1)

您可以存储连接是否安全,如下所示:

RewriteCond %{HTTP_HOST} ^domain-name\.tld [NC]
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteCond %{HTTPS}s ^on(s)| [NC]
RewriteRule ^(.*) http%1://domain-name.tld/? [R=301,L]