网站重新启动后,我需要一个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)变量。
答案 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]