我有下面的代码,其目的是根据URL中指定的操作将用户引导到不同的functions
。
$action = isset( $_GET['action'] ) ? $_GET['action'] : "";
$action = strtolower($action);
switch ($action) {
case 'viewproducts':
viewProducts();
break;
case 'products':
products();
break;
case 'homepage':
homepage();
break;
default:
header("HTTP/1.0 404 Not Found");
include_once("404.html");
}
如果用户在索引或/
上,我想将其指向homepage
。
RewriteEngine On
#if not a directory listed above, rewrite the request to ?action=
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/$ index.php?action=homepage [L,QSA]
#RewriteRule ^(.*)$ index.php?action=$1 [L,QSA]
但是,当在domain.com/
上时,开关默认设置。
2条答案
按热度按时间kmynzznz1#
这不是
.htaccess
的问题。这是你的密码我会使用.htaccess
:所以所有的请求只是直接去
index.php
,并在您的“路由器”应该是:因为你设置
$action
为空字符串,如果它没有指定,所以开关默认值。PS:只是一个建议。不要构建自己的
CMS
,使用框架或其他。最好专注于你的产品而不是开发工具。更新
正如OP所建议的,
RewriteRule
可以是:然而,在我的例子中,
.htaccess
来自 HTML5 Boilerplate,所以它经过测试,适合大多数情况(对我来说也一样)。slmsl1lt2#
您可以用途: