我有一个用PHP编写的web应用程序,urls如下: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错误。但如果我留着它什么都不会发生
有人能帮上忙吗?
发布于 2011-09-07 01:43:40
您可以为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
)
希望这能有所帮助!!
https://stackoverflow.com/questions/7323594
复制相似问题