Home htaccess rewrite for simplified url structure causing infinite redirect
Reply: 1

htaccess rewrite for simplified url structure causing infinite redirect

GrumpyCrouton
1#
GrumpyCrouton Published in 2018-02-07 15:49:12Z

I'm making a very small project, whereas normally I would use a PHP framework that handles this for me, I don't want the unneeded clutter of a framework. I have this structure:

-> assets
   -> css/etc
-> pages
   -> api.htm
   -> scramble.htm
   -> unscramble.htm
-> structure
   -> header.htm
   -> footer.htm
-> index.php

All of these files are in a directory themselves, example.com/example/scrambling/

So, to access my files, normally I would have to access example.com/example/scrambing/pages/api.htm for example - but I want all of the page loading to be handled through index.php.

My goal is to access the file above by simply going to example.com/example/scrambling/api

I found some questions on how to achieve this with .htaccess, but none of them are working for me. They always result in an infinite loop, and getting redirected to /example/scrambling/pages/index/pages/index/pages/index/pages/... - I'm not really sure how to go about solving this issue.

My current .htaccess file is this:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?f=$1

and I try to access the page name by echo $_REQUEST['f'];

How can I make the .htaccess file not infinitely redirect me?

Hamdard Kang
2#
Hamdard Kang Reply to 2018-02-07 16:23:06Z

Try this, this will definitely work.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^([^/]+)$ index.php?f=$1 [L,QSA]
You need to login account before you can post.

About| Privacy statement| Terms of Service| Advertising| Contact us| Help| Sitemap|
Processed in 0.364882 second(s) , Gzip On .

© 2016 Powered by mzan.com design MATCHINFO