index.php在htaccess重定向中显示为查询字符串

时间:2013-10-25 08:10:59

标签: apache .htaccess

我需要从一个目录重定向到另一个保存查询字符串.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作为查询字符串进入重定向网址的原因,并建议在没有index.php的情况下获取干净查询字符串的方法

1 个答案:

答案 0 :(得分:1)

你可以尝试这条规则:

RewriteEngine on

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