0

最近、これを使用するようにディレクトリ/old_dir/を変更し/new_dir/ました:

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

URLに最適に機能しているようです:

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 拡張子を使用しないと、それが php ハンドラーであることを認識しているある種の apache プラグインを利用します。これは、現在存在しないと言っているため、リダイレクトを台無しにしているように見えます。

この問題を解決する方法がわかりません。

編集:すべてのソリューションはこの特別なケース用ですが、phpではない、または同じ名前のファイルが約1000個あることに注意してください。

現時点では、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 に答える