samedi 1 juillet 2017

.htaccess vanity url not redirecting properly

I've got a blog subdirectory on my website (foo.com/blog), and I'm following a tutorial that offers a brief explanation of vanity urls.

Basically, I'm trying to get it so that when the user navigates to 'foo.com/blog/xyz' the 'xyz' variable (username) redirects the user to:

http://ift.tt/2srwsCt 

but still displays as:

foo.com/blog/xyz

The code in the tutorial doesn't work, so I've been relying on code in the youtube comments under it:

RewriteBase /

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^(.*)$ http://ift.tt/2taRDpz [NC]

The problem is, when I try to navigate to 'foo.com/blog/xyz' it instead redirects to:

http://ift.tt/2srJQq4

So obviously the username is being set to blog/xyz instead of xyz itself.

Likewise, if navigate to foo.com/xyz, it redirects to where it is supposed to go:

http://ift.tt/2taYwXL

But displays this url as it is instead of showing up as foo.com/blog/xyz (like how reddit shows up as http://ift.tt/2srlE7A for users)

So it appears I have two problems:

  • 1) I can't figure out how to make it so that it only does the rewrite when I navigate to foo.com/blog/xyz rather than foo.com/xyz (.htaccess is in public_html -- I tried moving it to public_html/blog but it didn't work)

  • 2) I can't figure out how to get it to display as blog/xyz instead of blog/profile?php?username=xyz

I don't know much about apache, and I really just need to get this one piece of code right so I can continue bashing my head against the wall with the rest of the tutorial. Does anyone know what I'm doing wrong?




Aucun commentaire:

Enregistrer un commentaire