首先我想说我一直在研究,但我仍然没有找到解决这个问题的方法。
我想做一个隐形重定向。使用此 URL http://www.localhost.com/@user_name/search/?q=string进行搜索而不重定向到另一个页面,因为我应该检查 MySQL 数据库中的用户 @user_name 以检索其用户轮廓。
PHP 脚本 search.php
<?php
echo 'USER:'.$_GET['user'].'<br/>';
echo 'QUERY q:'.$_GET['q'].'<br/>';
?>
.htaccess
#Begin invisibly redirect
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule \.(css|jpe?g|gif|png)$ - [L]
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
#This works with this (www.localhost.com/@user_name/search/X55)
#RewriteRule ^@([_A-Za-z0-9]+)/search/X(.*)$ /profile/search/search.php?user=$1&q=$2 [L]
#But ,for search, this doesn't work with this (www.localhost.com/@user_name/search/?q=string)
RewriteRule ^@([_A-Za-z0-9]+)/search/?q=(.*)$ /profile/search/search.php?user=$1&q=$2 [L]
#END invisibly redirect
结果
1
使用:#RewriteRule ^@([_A-Za-z0-9]+)/search/X(.*)$ /profile/search/search.php?user=$1&q=$2 [L]
AND
www.localhost。 com/@user_name/search/X55
它返回
USER:user_name
QUERY q:55/
2
使用:#RewriteRule ^@([_A-Za-z0-9]+)/search/?q=(.*)$ /profile/search/search.php?user=$1&q=$2 [L]
AND
www. localhost.com/@user_name/search/?q=string
它给出了一个服务器错误。
请帮忙,谢谢。