0

我最近更改了一个目录/old_dir//new_dir/使用它:

RedirectMatch 301 /old_dir/(.*) /new_dir/$1

这似乎非常适合网址:

http://www.mysite.com/old_dir/test.php?var=xxxx

http://www.mysite.com/new_dir/test.php?var=xxxx

文件名在哪里test.php。但在很多地方我使用:

http://www.mysite.com/old_dir/test?var=xxxx

这提出了:

The requested URL /old_dir/test was not found on this server.

不使用 .php 扩展名利用了某种 apache 插件,该插件知道它是一个 php 处理程序,这似乎会扰乱重定向,因为它说它现在不存在。

我不知道如何解决这个问题。

编辑:所有解决方案都针对这种特殊情况,但请注意,我有大约 1000 个其他文件可能不是 php,或者名称相同。

现在,我只是在 old_dir 中创建了一个名为“test”的符号链接,以指向 new_dir 的 test.php。但我仍在寻找包含我的场景的非特定解决方案。

4

1 回答 1

0

你试过使用 mod_rewrite 吗?

Options +FollowSymlinks
RewriteEngine On
RewriteRule ^([^/]+)/([^/]+)$ $1/$2.php [QSA] 
RewriteRule ^old_dir/([^/]+)/$ new_dir/$1.php [QSA]
于 2013-01-07T08:33:55.377 回答