使用rewriterule忽略现有目录

时间:2015-11-26 18:24:54

标签: php apache .htaccess mod-rewrite

我有一个相当简单的问题。我在几个网站上有一个URL,如下所示:

 http://marksdomain(dot)com/Foo/Bar/Mark.php?oldParm=value1

并注意Mark.php目前位于以下目录:

 /public_html/Foo/Bar/Mark.php

现在, Mark.php?oldParm = value1 需要使用mod_rewrite的魔力更改为 Lori.php?oldParm = value1 。考虑到Foo& amp;我无法确定Apache如何做到这一点。条目目录存在。

我尝试了以下内容:

 RewriteEngine On
 RewriteRule ^Foo/.*$  -  [PT]
 RewriteRule ^Foo$  -  [PT]
 RewriteRule ^Bar/.*$  -  [PT]
 RewriteRule ^Bar$  -  [PT]
 RewriteRule ^Foo/Bar$  -  [PT]
 RewriteRule  ^/Foo/Bar/Mark.php?oldParm=    http://marksdomain(dot)com/Foo/Bar/Lori.php?newParm= [P,QSA,L]

但似乎我似乎无法让Apache超越Foo&酒吧目录。我找到一个目录级别的示例,但不是两个或更多

实现这一目标的最佳方法是什么?

理想情况下,我最终会得到以下结论:

 http://marksdomain(dot)com/Foo/Bar/Mark.php?oldParm=value1
   --forwards to--
 http://marksdomain(dot)com/Foo/Bar/Lori.php?oldParm=value1

- 和 -

 http://marksdomain(dot)com/Foo/Bar/Mark.php?NEW-Parm=value1

无需触及mod_rewrite即可使用。

非常感谢你们。

“尽管有大量的例子和文档,mod_rewrite仍然是伏都教。诅咒酷伏都教,但仍然是伏都教。” - Brian Moore

1 个答案:

答案 0 :(得分:1)

我不是mod_rewrite天才,但试试

RewriteCond %{REQUEST_URI} ^/Foo/Bar/Mark.php [NC]
RewriteCond %{QUERY_STRING} ^oldParam=(.*)
RewriteRule (.*) /Foo/Bar/Lori.php