apache - 具有参数的URL的RewriteCond

标签 apache mod-rewrite url-rewriting

我有一个重写网址的问题。
我要这个 :

http://www.foo.com/test.php?u=s1&id=12345&img=12




http://app.foo.com/12345-s1-12.test


第一个参数u是一个字符串,参数id和img是整数。

我从这样的事情开始:

RewriteCond %{REQUEST_URI} ^/test.php?u=(.*)&id=(.*)&img=(.*)/ [NC]
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test [QSA,R=301,L]


谢谢 :)

编辑:

仍然无法正常工作,但是我已经接近了!

RewriteCond %{REQUEST_URI} ^/test.php [NC]
RewriteCond %{QUERY_STRING} ^u=(.*)&id=(.*)&img=(.*)
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test [QSA,R=301,L]


现在它给我那个链接:

http://app.foo.com/12345-s1-12.test?u=s1&id=12345&img=12


代替 :

http://app.foo.com/12345-s1-12.test


:(

最佳答案

解决了!

RewriteCond %{REQUEST_URI} ^/test.php [NC]
RewriteCond %{QUERY_STRING} ^u=(.*)&id=(.*)&img=(.*)
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test? [R=301,L]


在RewriteRule的末尾放置?会删除以前的查询字符串信息。

关于apache - 具有参数的URL的RewriteCond,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234005/

相关文章:

apache - 使用 AuthType Digest 跨子域对用户进行一次身份验证的示例?

regex - htaccess 使用字符串参数的部分值重定向 URL

php - 使用 htaccess 从 URL 中删除文件夹名称

logging - 处理重写规则后的 Haproxy 日志记录最终路径

apache - 为 apache 安装 mod_wsgi 模块

python - 在 Web 服务器上运行时,Paramiko SSH 失败并显示 "Server ' .. .' not found in known_hosts"

regex - .htaccess mod_rewrite 中的百分号

.htaccess - htaccess 使用 url 参数重定向到子文件夹

.htaccess - .htaccess 中的 header 设置 Access-Control-Allow-Origin 不起作用

apache - 如何路由各种域别名以使用自己的网页 PHP 文件获取自己的文件夹?