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