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

时间:2015-10-03 21:16:34

标签: php

我真的在脑子里有这个问题而且没有得到任何答案..! 任何人都可以告诉我,因为我是一个初学PHP开发者..我真的在一些脚本开发工作但我真的需要知道如何在登录系统中绑定大量的PHP页面,而我知道这是通过PHP完成的会话但我真的需要知道如何获得访问它们的不同链接..! 例如,我有一个网站,它有以下文件通过PHP Session相互链接但我真的不需要公开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/

所以我真的需要知道它...! 如果有人能回答它会很棒..!

3 个答案:

答案 0 :(得分:1)

您使用preg_replace

$myLink = "http://localhost/script/dashboard.php";
$myLink = preg_replace('/\.php$/i', '/', $myLink );
echo $myLink;
//http://localhost/script/dashboard/

OR

$myLink = "http://localhost/script/dashboard.php";
$myLink = preg_replace('%http://localhost/script/(.*?)\.php%i', 'http://localhost/script/index?page=$1', $myLink );
echo $myLink;
//http://localhost/script/index?page=dashboard

答案 1 :(得分:1)

当网站引用特定页面时,它会使用类似

的内容

background: linear-gradient(#FFC894,#FFC894);

但是,如果您希望链接没有http://localhost/script/dashboard.php,则可以执行以下操作。您可以拥有一个名为mypage.php的目录设置,并在其中包含dashboard。请参阅以下结构。

这就是你之前的目标

index.php

如果您希望链接以-script -dashboard.php

之类的结尾结束

使用这样的结构

http://localhost/script/dashboard/

答案 2 :(得分:1)

所以让我们假设这个目录结构

Directory structure

创建一个名为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>';

?>

您需要mod重写来隐藏真实文件位置并删除文件扩展名。

设置的示例网址:http://localhost/script/settings

档案: /。htaccess

RewriteEngine on
RewriteRule ^script/([a-z]+)$ router.php?file=$1 [L,NC]

这些是您提到的PHP文件的基础知识。请务必包含对所有这些文件的持续检查。

文件: /phpfiles/settings.php

<?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>';

?>

这是为了拒绝访问phpfiles文件夹中的文件

文件: /phpfiles/.htaccess

order deny,allow 
deny from all