0

我对我的重写感到困惑。我想做以下事情:

  • example.com/ not/needed /index.php → example.com/index.php
  • example.com/ not/needed /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 回答