我有.htaccess的问题,重写我的网址。我创建了一个简单的动态网站,我不知道如何解决它。这是我的登录URL localhost / foss /然后在成功登录后,用户将被重定向到localhost / foss / main
这是我的.htaccess
的代码RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?p=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?p=$1
这是我的php处理包含文件,具体取决于p值。
<?php
$page = $_GET['p'];
$pages = array('home', 'inv_view', 'inv_add', 'inv_delete', 'inv_edit', 's_view', 's_add', 's_delete', 'change_pass', 'register', 'logout');
if (!empty($page))
{
if(in_array($page, $pages))
include $page . '.php';
else
echo 'Page not found!';
}
else
include 'home.php';
?>
这工作正常,唯一奇怪的事情发生在用户被重定向到localhost / foss / main之后,.htaccess将url重写为localhost / foss / main /?p = main,但是当我选择像localhost / foss / main / home这样的链接它会正常工作。用户登录后如何摆脱?p = main并重定向到localhost / foss / main
答案 0 :(得分:0)
发生此行为的原因是因为mod_dir
模块正在mod_rewrite
之后运行,并且在重写规则之后在目录main/
前面添加了一个尾部斜杠,并且您获得的最终URL为{{ 1}}。
要解决此问题,请在刷新代码中添加一个斜杠:
localhost/foss/main/?p=main