我是HTACCESS命令行的新手。我遇到了一些问题
1.当没有输入GET []变量时,页面会重定向到错误页面,但是在我的php代码中我有一个默认函数来覆盖它。如何防止这种情况发生并仍然加载代码。
2.如何将带有错误链接的页面重定向到干净的链接。例如:adminpage.php -> admin/view/...
我看过这个重定向的讨论,但它似乎对我不起作用:Redirect *.php to clean URL
3.如果在具有空GET [] VAR的链接末尾没有尾部斜杠,则无法加载并重定向到错误页面。例如:/index/r/2 -> /index/r
如何防止这种情况。
我已经查看了这个讨论的尾随斜杠,但这只对基本的缺失斜杠有帮助,而不是当GET []变量也丢失时... 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
答案 0 :(得分:0)
您是否了解htaccess的性能问题?
$ _ GET []是协议特定的,而$ _REQUEST []不关心reg post v。
所以你可以处理丢失的输入
<code>
if ( empty($_REQUEST[]) ) {
// some error logic
} else
// process the CGI inputs
}
</code>
顺便说一句:最奇怪的是CGI程序在没有任何输入的情况下被调用。
IMO的前端应该用onSubmit()捕获它,并避免往返旅行。