可以将用户从网址http://localhost/welcome?url=1&another=2
重定向到index.php吗?另一个= 2& url = welcome?我的意思是,我想在解析的部分之前放置所有查询字符串。有可能吗?
我知道我可以这样做:
RewriteRule ^(.*)$ index.php?%{QUERY_STRING}&url=$1 [QSD,L]
使用$_SERVER[ 'REDIRECT_QUERY_STRING' ]
在php中捕获URL,但我想从GET数组中获取查询字符串。
如果我只是获取GET我已经将url等于index.php
(文件名),如果我将标志更改为QSA
,则在所有重定向后添加查询字符串...
有什么想法吗?
- 编辑 -
我已经检查了一些问题,我发现这是因为循环而完成的。
我已经这样做了,但也许有人更好地知道如何解决这个问题。
RewriteCond %{QUERY_STRING} !&rw=1$ [NC]
RewriteRule ^(.*)$ index.php?%{QUERY_STRING}&url=$1&rw=1 [QSD,L]
答案 0 :(得分:1)
可以将用户从网址
http://localhost/welcome?url=1&another=2
重定向到index.php吗?另一个= 2& url = welcome?
是的,您可以在根目录的.htaccess文件中尝试:
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !index\.php [NC]
RewriteCond %{QUERY_STRING} ^url=1&([^=]+)=([\d]+)/? [NC]
RewriteRule ^(.*) /index.php?%1=%2&url=$1? [NC,L]
静默地映射:
http://localhost/par1?url=1&par2=val2
要:
http://localhost/index.php?par2=val2&url=par1
par1 , par2 和数字 val2 是动态字符串。
对于永久重定向,将[NC,L]替换为[R = 301,NC,L]