htaccess redirect with variable query params
could you help me get this working please.
I am trying to redirect
/search.php?id=5GHU&distance=50&sort=title
or
/search.php?id=5GHU
or
/search.php?id=5GHU&distance=50
to
/search/?query_string_values
i.e. whether it's one query string parameter or many they all should go there
This is what I tried.
RewriteBase /
RewriteCond %{QUERY_STRING} (?:^|&)id=([^&]+)
RewriteRule ^search.php$ /search/%1? [L,R=permanent]
Thanks
apache .htaccess
add a comment |
could you help me get this working please.
I am trying to redirect
/search.php?id=5GHU&distance=50&sort=title
or
/search.php?id=5GHU
or
/search.php?id=5GHU&distance=50
to
/search/?query_string_values
i.e. whether it's one query string parameter or many they all should go there
This is what I tried.
RewriteBase /
RewriteCond %{QUERY_STRING} (?:^|&)id=([^&]+)
RewriteRule ^search.php$ /search/%1? [L,R=permanent]
Thanks
apache .htaccess
add a comment |
could you help me get this working please.
I am trying to redirect
/search.php?id=5GHU&distance=50&sort=title
or
/search.php?id=5GHU
or
/search.php?id=5GHU&distance=50
to
/search/?query_string_values
i.e. whether it's one query string parameter or many they all should go there
This is what I tried.
RewriteBase /
RewriteCond %{QUERY_STRING} (?:^|&)id=([^&]+)
RewriteRule ^search.php$ /search/%1? [L,R=permanent]
Thanks
apache .htaccess
could you help me get this working please.
I am trying to redirect
/search.php?id=5GHU&distance=50&sort=title
or
/search.php?id=5GHU
or
/search.php?id=5GHU&distance=50
to
/search/?query_string_values
i.e. whether it's one query string parameter or many they all should go there
This is what I tried.
RewriteBase /
RewriteCond %{QUERY_STRING} (?:^|&)id=([^&]+)
RewriteRule ^search.php$ /search/%1? [L,R=permanent]
Thanks
apache .htaccess
apache .htaccess
asked Nov 15 '18 at 13:27
NoNiceNoNice
79110
79110
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Sorry for my confusion about your question, I got it now. So...
Modify your .htaccess like this:
RewriteEngine On
RewriteRule "^/search.php$" "/search/" [L,R=301,QSA]
In short it will take the query string (what follows /search.php that starts with ?
) and append it to "/search/". That is done by the QSA flag to RewriteRule. No matter how many parameters you have, it will append it all.
See https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa
So
/search.php?a=1&b=2 --> /search/?a=1&b=2
/search.php?c=3 --> /search/?c=3
Since /search/?a=1&b=2
does not specify a page to use, it will use the default page defined by DirectoryIndex in your configuration. I prefer to explicitly specify the page, but it works without.
Thanks - let me check.
– NoNice
Nov 15 '18 at 15:17
Yes it worked. Thank you.
– NoNice
Nov 15 '18 at 15:23
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53320550%2fhtaccess-redirect-with-variable-query-params%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sorry for my confusion about your question, I got it now. So...
Modify your .htaccess like this:
RewriteEngine On
RewriteRule "^/search.php$" "/search/" [L,R=301,QSA]
In short it will take the query string (what follows /search.php that starts with ?
) and append it to "/search/". That is done by the QSA flag to RewriteRule. No matter how many parameters you have, it will append it all.
See https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa
So
/search.php?a=1&b=2 --> /search/?a=1&b=2
/search.php?c=3 --> /search/?c=3
Since /search/?a=1&b=2
does not specify a page to use, it will use the default page defined by DirectoryIndex in your configuration. I prefer to explicitly specify the page, but it works without.
Thanks - let me check.
– NoNice
Nov 15 '18 at 15:17
Yes it worked. Thank you.
– NoNice
Nov 15 '18 at 15:23
add a comment |
Sorry for my confusion about your question, I got it now. So...
Modify your .htaccess like this:
RewriteEngine On
RewriteRule "^/search.php$" "/search/" [L,R=301,QSA]
In short it will take the query string (what follows /search.php that starts with ?
) and append it to "/search/". That is done by the QSA flag to RewriteRule. No matter how many parameters you have, it will append it all.
See https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa
So
/search.php?a=1&b=2 --> /search/?a=1&b=2
/search.php?c=3 --> /search/?c=3
Since /search/?a=1&b=2
does not specify a page to use, it will use the default page defined by DirectoryIndex in your configuration. I prefer to explicitly specify the page, but it works without.
Thanks - let me check.
– NoNice
Nov 15 '18 at 15:17
Yes it worked. Thank you.
– NoNice
Nov 15 '18 at 15:23
add a comment |
Sorry for my confusion about your question, I got it now. So...
Modify your .htaccess like this:
RewriteEngine On
RewriteRule "^/search.php$" "/search/" [L,R=301,QSA]
In short it will take the query string (what follows /search.php that starts with ?
) and append it to "/search/". That is done by the QSA flag to RewriteRule. No matter how many parameters you have, it will append it all.
See https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa
So
/search.php?a=1&b=2 --> /search/?a=1&b=2
/search.php?c=3 --> /search/?c=3
Since /search/?a=1&b=2
does not specify a page to use, it will use the default page defined by DirectoryIndex in your configuration. I prefer to explicitly specify the page, but it works without.
Sorry for my confusion about your question, I got it now. So...
Modify your .htaccess like this:
RewriteEngine On
RewriteRule "^/search.php$" "/search/" [L,R=301,QSA]
In short it will take the query string (what follows /search.php that starts with ?
) and append it to "/search/". That is done by the QSA flag to RewriteRule. No matter how many parameters you have, it will append it all.
See https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa
So
/search.php?a=1&b=2 --> /search/?a=1&b=2
/search.php?c=3 --> /search/?c=3
Since /search/?a=1&b=2
does not specify a page to use, it will use the default page defined by DirectoryIndex in your configuration. I prefer to explicitly specify the page, but it works without.
edited Nov 15 '18 at 14:30
answered Nov 15 '18 at 14:25
Nic3500Nic3500
3,32281829
3,32281829
Thanks - let me check.
– NoNice
Nov 15 '18 at 15:17
Yes it worked. Thank you.
– NoNice
Nov 15 '18 at 15:23
add a comment |
Thanks - let me check.
– NoNice
Nov 15 '18 at 15:17
Yes it worked. Thank you.
– NoNice
Nov 15 '18 at 15:23
Thanks - let me check.
– NoNice
Nov 15 '18 at 15:17
Thanks - let me check.
– NoNice
Nov 15 '18 at 15:17
Yes it worked. Thank you.
– NoNice
Nov 15 '18 at 15:23
Yes it worked. Thank you.
– NoNice
Nov 15 '18 at 15:23
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53320550%2fhtaccess-redirect-with-variable-query-params%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown