DEV Community


Posted on


Mine is a question.
I have a redirect from, ('username')
I have redirected this to (
How I am also trying to redirect ( to (, the redirect seems to work, except that, its opening the page of (

Here is my code.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)$ users/index.php?id=$1 [L]
RewriteEngine on
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^$ [R=301,L]

How can i make ( to open its own page?

Top comments (2)

moopet profile image
Ben Sinclair

Your first rule is saying, "take any path that doesn't include a / and send it as a query string value to users/index.php. This is relatively safe, I think.

Your second rule, the redirect from to has a couple of problems:

  1. you're relying on it ending in a slash to avoid the first rule. That might not make the cut, I don't know.
  2. you're using URLs not paths - you don't need the part
  3. you're specifying a scheme of http in the redirect which isn't necessary and will probably break things if you're using https (which most people do).

If you browse to /settings/ with the trailing slash (like the redirect suggests) it's possible it'll work, however, it'll be trying to get its content from something like /settings/index.html unless you're using other overrides somewhere else.

If you browse to /settings without the trailing slash it'll hit the first rule and redirect to users/index.php?id=settings

You don't need to use RewriteEngine On more than once.

I don't have any of this set up, so I don't guarantee anything I say is particularly right.

mutale85 profile image

your response is highly appreciated. Let me try to check through.