2013-10-28 57 views
0

我都与我的重写感到困惑。我要做到以下几点:使用.htaccess删除部分网址。 404重写后

  • example.com/ 不/需要的index.php→example.com/index.php
  • example.com/ 不/需要 /文件夹/→ example.com/folder/
  • 查询参数应保留

我已经有一个重写规则,没有工作:

Options +FollowSymlinks -MultiViews 

RewriteEngine On 
RewriteBase/

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

但是在重写之后,我得到了404。我怎么能告诉服务器它应该显示来自原始URI的内容?

回答

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]