.htaccess mod_rewrite 301重定向问题

时间:2011-09-06 17:12:31

标签: php .htaccess apache

我在PHP中有一个Web应用程序,其中包含以下URL: https://www.domain.com/?mod=test&act=view

我的问题是,当我尝试使用mod_rewrite将用户重定向到新链接时: https://www.domain.com/view-test

我的.htaccess下面有以下规则:

RewriteRule ^\?mod=test&act=view$ /view-test [L,R=301] 

如果我删除了前导“?”从上面的规则重定向工作,但我很容易得到404错误。但如果我保持它没有任何反应

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您可以为view-test

创建新规则
RewriteEngine On

RewriteRule ^mod=test&act=view$ /view-test [L,R=301] 

# new rule for view-test
RewriteRule ^view-test$ /index.php [L]

<强>更新

这对我很有用:

Options +FollowSymlinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI}  ^/index\.php$
RewriteCond %{QUERY_STRING} ^mod=test&act=view$
RewriteRule ^(.*)$ /test-view? [L,R=301]

RewriteRule ^test-view/?$ /index.php [L]

获取值:

<?php

$request = str_replace("/", "", $_SERVER['REQUEST_URI']);
$request = explode("-", $request);

print_r($request);

输出:

Array
(
    [0] => test
    [1] => view
)

希望这会有所帮助!!