1

我需要使用 .htaccess 从一个目录重定向到另一个保留查询字符串,因为我已将搜索目录从更改/global/search//search/

重定向

localhost/site/global/search/index.php?keyword=hi&search=all

localhost/site/search/?keyword=hi&search=all

目录结构

wamp/www/site/global/search/index.php   //for /global/ directory
wamp/www/site/search/index.php          //for /search/ directory

我正在尝试这种方式

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^global/search(/?|/index.php?)$ /site/search/?$1 [QSA,R=301,L]

这是有效的,除了我进入index.php查询字符串

重定向后我得到了这个网址。

http://localhost/site/search/?/index.php&keyword=hi&search=all

我希望这个网址像

http://localhost/site/search/?keyword=hi&search=all

请查看为什么 index.php 以重定向 url 作为查询字符串出现,并建议在没有 index.php 的情况下获取干净的查询字符串的方法

4

1 回答 1

0

你可以试试这个规则:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^global/search(/?|/index\.php)$ /site/search/ [NC,R=301,L]
于 2013-10-25T08:14:19.350 回答