0

私はすべて私の書き直しに混乱しています。私は次のことをしたい:

  • example.com/必要ありません/index.php → example.com/index.php
  • example.com/必要ありません / folder/ → example.com/folder/
  • クエリ パラメータを保持する必要がある

私はすでに仕事をする書き換えルールを持っています:

Options +FollowSymlinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteRule ^not/needed(.*)$ $1 [L,R=302,QSA]

ただし、書き換えが行われた後、404 が表示されます。元の URI からのコンテンツを表示する必要があることをサーバーに伝えるにはどうすればよいですか?

4

1 に答える 1

0

あなたのルールは一方向にしか機能しません。RewriteRule <target> <destination>、逆行させる魔法はありません。逆のルールを明示的に作成する必要があります。

Options +FollowSymlinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \ /+not/needed/(.*)
RewriteRule ^not/needed(.*)$ $1 [L,R=302]

RewriteCond %{REQUEST_URI} !^/not/needed/
RewriteRule ^(.*)$ /not/needed/$1 [L]
于 2013-10-28T17:18:27.893 に答える