【发布时间】:2015-07-16 21:42:55
【问题描述】:
我对 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
【问题讨论】:
-
请参阅Reference: mod_rewrite, URL rewriting and "pretty links" explained,了解可选的斜杠和“乒乓”重定向。就一件具体的事情提出问题,而不是一次提出三个问题。更详细地解释“空 GET”问题。像往常一样访问/error/rewrite.log 和示例 URL。
标签: php apache .htaccess mod-rewrite