Php 如何拥有没有扩展的链接?

Php 如何拥有没有扩展的链接?,php,Php,我真的有这个问题在我的脑海里,真的没有得到任何答案。。! 有谁能告诉我,因为我是一名PHP初学者。我确实做过一些脚本开发工作,但我真的需要知道如何将登录系统中的许多PHP页面彼此绑定,虽然我知道这是通过PHP会话完成的,但我真的需要知道如何有不同的链接来访问它们。。! 例如,我有一个网站,它有以下文件通过PHP会话相互链接,但我真的不需要公开PHP文件的文件名以及它的目录,所以我如何真正调用它或访问它,就像我现在这样做: http://localhost/script/dashboard.php

我真的有这个问题在我的脑海里,真的没有得到任何答案。。! 有谁能告诉我,因为我是一名PHP初学者。我确实做过一些脚本开发工作,但我真的需要知道如何将登录系统中的许多PHP页面彼此绑定,虽然我知道这是通过PHP会话完成的,但我真的需要知道如何有不同的链接来访问它们。。! 例如,我有一个网站,它有以下文件通过PHP会话相互链接,但我真的不需要公开PHP文件的文件名以及它的目录,所以我如何真正调用它或访问它,就像我现在这样做:

http://localhost/script/dashboard.php
http://localhost/script/invoice.php
http://localhost/script/settings.php
相反,我希望这些链接如下所示:

http://localhost/script/dashboard/
http://localhost/script/index=?dashboard
或者页面ID类似于:

http://localhost/script/page-56/
所以我真的需要知道它,请。。! 如果有人能回答,那就太好了

你可以使用


当一个网站引用一个特定的页面时,它会使用

http://localhost/script/dashboard.php

但是,如果希望链接不包含
mypage.php
,可以执行以下操作。您可以有一个名为
dashboard
的目录设置,并在其中包含
index.php
。请参见下面的结构

这就是你以前拥有的

-script
    -dashboard.php
如果您希望链接以类似
http://localhost/script/dashboard/

使用这样的结构

-scripts (folder)
    -dashboard (folder)
         -index.php

让我们假设这个目录结构


创建一个名为router.php的文件,该文件将包含所有其他文件

文件:/router.php

<?php

if( isset( $_GET['file'] ) ) {

    // Sanitize file name
    $file = preg_replace( '/[^a-z]+/i', '', $_GET['file'] );

    if( $file != '' ) {

        $file_location = './phpfiles/' . $file . '.php';

        if( is_file( $file_location ) ) {

            // Avoid direct access to secure files
            define( '__SECURE_ACCESS__', 1 );

            require_once ( $file_location );
            exit;

        }

    }

}
echo '<h1>Sorry, no such file in here!</h1>';

?>
<?php

// No direct access to this file!
defined( '__SECURE_ACCESS__' ) or die( 'Hack attempt!' );

echo '<h3>', $file, '</h3>';
echo '<p>This is the "', $file, '.php" included file!</p>';

?>

这些是您提到的PHP文件的基础。确保在所有这些文件中都包含该常量检查

文件:/phpfiles/settings.php

<?php

if( isset( $_GET['file'] ) ) {

    // Sanitize file name
    $file = preg_replace( '/[^a-z]+/i', '', $_GET['file'] );

    if( $file != '' ) {

        $file_location = './phpfiles/' . $file . '.php';

        if( is_file( $file_location ) ) {

            // Avoid direct access to secure files
            define( '__SECURE_ACCESS__', 1 );

            require_once ( $file_location );
            exit;

        }

    }

}
echo '<h1>Sorry, no such file in here!</h1>';

?>
<?php

// No direct access to this file!
defined( '__SECURE_ACCESS__' ) or die( 'Hack attempt!' );

echo '<h3>', $file, '</h3>';
echo '<p>This is the "', $file, '.php" included file!</p>';

?>

但我真的不想以一个目录结束..我真的知道…这是一个非常简单的解决方案..但我真的不需要为每个php文件都有一个目录,只是为了不公开它,事实上这是一个坏主意,因为每个人都会知道,显然它是该目录中的
index.php
文件..这不是个好主意。。!虽然我还是为你竖起大拇指。。!事实上,它是完美的。但我如何才能真正通过该链接访问php文件,将给我一个404NotFound错误。。!cuz文件名将类似于
someting.php
,我正在使用其他链接访问它。。!使用。这里有一些例子,除了
mod_rewrite
之外,没有其他方法可以做到这一点?我需要知道,我会调用这样的链接来访问它们吗<代码>http://localhost/script/router.php?file=dashboard
http://localhost/script/router.php?file=invoice
http://localhost/script/router.php?file=settings
不,是Apache服务器做的,你和你的用户不做。您的URI将是:等等。。。
<?php

// No direct access to this file!
defined( '__SECURE_ACCESS__' ) or die( 'Hack attempt!' );

echo '<h3>', $file, '</h3>';
echo '<p>This is the "', $file, '.php" included file!</p>';

?>
order deny,allow 
deny from all