0

I'm quite new to the HTACCESS Command Line. I running into a few problems

1. When no GET[] variable is inputted, the page redirects to a error page, however in my php code I have a default function to cover this. How do I prevent this from happening and still load the code.
2. How do I redirect a page with a bad link to a clean link. For example: adminpage.php -> admin/view/...
I've looked at this discussion for redirects, but it does not seem to be working for me: Redirect *.php to clean URL
3. When there is not trailing slash at the end of a link with empty GET[] VAR, it fails to load and redirects to error page. For example: /index/r/2 -> /index/r How do I prevent this.

I've looked at this discussion for trailing slashes, but this only helps with basic missing slashes, not when the GET[] variable is missing too..
Htaccess: add/remove trailing slash from URL

# Follow Symbolic Links
Options +FollowSymLinks

# Turn Rewrite Engine On
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)/$ /$1 [L,R=301]

RewriteRule ^index/r/(\w*)$ /index.php?r=$1

RewriteRule ^index/r/(\w*)/(\w*)$ /index.php?r=$1&p=$2

RewriteRule ^admin/login$ /admin.php

RewriteRule ^admin/view/(\w*)$ /adminpage.php?p=$1
Community
  • 1
  • 1
David Yue
  • 713
  • 7
  • 24
  • 1
    See [Reference: mod\_rewrite, URL rewriting and "pretty links" explained](http://stackoverflow.com/q/20563772) on optional trailing slash, and "ping-pong" redirects. Make your question about one specific thing, not three questions at once. Explain the "empty GET" issue in more detail. Access/error/rewrite.log, and sample URLs as usual. – mario Jul 16 '15 at 22:52

1 Answers1

0

Are you aware of the performance issues re htaccess?

$_GET[] is protocol specific while $_REQUEST[] doesn't care reg get v post.

so you can handle missing inputs

<code>
if ( empty($_REQUEST[]) ) {
   // some error logic
} else
   // process the CGI inputs
}
</code>

btw: Most strange that the CGI program gets invoked without ANY inputs. IMO the front end should have caught that with onSubmit() and avoided the round trip for nothing.

jobeard
  • 129
  • 6