我在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错误。但如果我保持它没有任何反应
有人可以帮忙吗?
答案 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
)
希望这会有所帮助!!