将domain.com/givenresource/givenid重定向到domain.com/givenresource.php_ID=givenid

时间:2017-05-10 13:18:16

标签: apache .htaccess url-rewriting

寻求帮助重写网址。当程序/用户请求时:

example.com/givenresource/givenid

我想将请求重写为:

example.com/givenresource.php_ID=givenid

还想重写:

example.com/givenresource/?searchparam=searchforthis&searchparam2=searchforthis2

example.com/givenresource.php?searchparam=searchforthis&searchparam2=searchforthis2

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

  

/givenresource/givenid/givenresource.php_ID=givenid

我认为?遗漏只是一个拼写错误,它应该是/givenresource.php?_ID=givenidID是大写的。其他假设:

  • givenresource是可变的,仅限于字符a-z(小写)和-
  • givenid是变量且为数字,仅包含字符0-9

在这种情况下,请使用mod_rewrite在<{1}}文件中尝试以下内容:

.htaccess
  

RewriteEngine On RewriteRule ^([a-z-]+)/(\d+)$ $1.php?_ID=$2 [L] /givenresource/?searchparam=searchforthis&searchparam2=searchforthis2

这将检查查询字符串是否启动/givenresource.php?searchparam=searchforthis&searchparam2=searchforthis2,然后将整个查询字符串复制到 substitution (目标URL):

searchparam