Apache重写到包含参数的新页面

Apache重写到包含参数的新页面,apache,.htaccess,redirect,mod-rewrite,parameters,Apache,.htaccess,Redirect,Mod Rewrite,Parameters,我有外部网站链接到我的页面: 但现在我需要将它们重定向到: A已经解决了重定向问题,但它们是不同的,它们被转换为不同类型的url,例如example.com/page/55555或其他域,而不是相同的域和相同的url结构 我确实让它在没有使用参数的情况下工作 RewriteRule old.php new.php,但在传递参数时这不起作用 仅重命名页面不是一个选项: 谢谢 编辑: 这是可以工作的代码,但是没有参数。无论何时添加?page=55555,它都不再起作用 RewriteRule old

我有外部网站链接到我的页面:

但现在我需要将它们重定向到:

A已经解决了重定向问题,但它们是不同的,它们被转换为不同类型的url,例如example.com/page/55555或其他域,而不是相同的域和相同的url结构

我确实让它在没有使用参数的情况下工作 RewriteRule old.php new.php,但在传递参数时这不起作用

仅重命名页面不是一个选项: 谢谢

编辑:

这是可以工作的代码,但是没有参数。无论何时添加?page=55555,它都不再起作用

RewriteRule old.php new.php [R=302,NC]
这是我尝试过的另一个变体,但无法实现:

RewriteRule ^old\.php?([0-9]*) new.php?page=$1 [NC,QSA]
编辑2:

给出的答案是有效的,但只有当我从.htaccess文件中删除以下4行时,答案才有效:

RewriteCond %{QUERY_STRING} !marker  
RewriteCond %{QUERY_STRING} page=([0-9]+)
RewriteRule ^/?new.php$ %1? [R=301,L]
RewriteRule ^/?p([-a-zA-Z0-9_+]+)$ new.php?marker&page=$1 [L]
这四条线使您可以进入 在浏览器中,它将打开 但还是用它来掩饰

我希望old.php和new.php都能以这种方式工作。我希望这是清楚的。

应该使用:

RewriteEngine On
RewriteBase /
RewriteRule old.php new.php [R,NC,QSA,L]

你能更新你的问题以包含你的.htaccess吗?谢谢Ben,我添加了两行我尝试过的不同代码。你是否将RewriteRule old.php new.php[R,NC,QSA,L]放在RewriteCond%{QUERY_STRING}之前了!马克笔?是的,以前我也试过,但后来我没法用了。我得到一个404错误,我想是因为old.php不存在?。我还尝试了其他版本,使用QSA,这些也不起作用。只是做了一些更新,应该启用RewriteEngineal,所以您需要在配置文件中设置AllowOverride All您的答案是正确的,也可以工作。然而,与.htaccess中的现有部分存在冲突,我是否也应该在这里发布该部分,因为它与此相关,当然,我是否必须为它打开一个不同的问题?