簡體   English   中英

通過從外部文件提取URL進行動態PHP重定向

[英]Dynamic PHP Redirect via extracting URL from an external file

作為預防措施,我想使用PHP創建一種易於重用/可修改的方法來將用戶重定向到指定的URL。

我有通常的php標頭重定向:

<?php

   header( 'Location: http://www.stackoverflow.com/' ) ;

?>

但是,我更喜歡這樣做,因為此文件將放置在許多目錄中,以簡化工作,並從外部文件中提取網址,例如

http://www.stackoverflow.com/url.xml

當然,這將包含相關網站的URL,除非有另一種自動捕獲域本身的方法? 我不確定。

有人能表現出如何做到這一點或提供最佳方法的人嗎?

謝謝。

我在以與@adam相同的方式進行思考,我不建議您從文件中提取URL,因為它可以從攻擊者那里讀取。 最好將它們作為變量,數組或任何其他數據結構包含在php文件中。

將網址一次存儲在一個名為config.inc.php的文件中:

<?php

define('USER_PATH', '/redirect/user/path');
define('ADMIN_PATH', '/redirect/admin/path');

?>

然后在您的php文件中:

<?php
include 'config.inc.php';
header( "Location: http://{$_SERVER['HTTP_HOST']} . USER_PATH ) ; //or whatever variable you want to use to redirect.
?>

如果由於安全問題而要重定向某些文件夾,則可以使用Apache的htaccess進行。 只需將其放在根文件夾中,然后為每個重定向添加最后一行即可。 此處提到的每個文件夾只能由服務器上運行的腳本訪問。
使用此方法,將重定向使用HTTP的每個訪問請求。 因此,這僅適用於包含要包含腳本的目錄。 它不適用於不應顯示索引的圖像目錄,但圖像應保持可訪問性。

RewriteEngine on
RewriteBase /
RewriteRule ^includes/(.*) http://www.stackoverflow.com/ [R=301,L]
RewriteRule ^includes/(.*) http://www.stackoverflow.com/ [R=301,L]

如果您對此不熟悉,可以使用http://www.htaccessredirect.net/

如果包含url的文件位於您無法控制的域中,則存在安全風險。

而是將網址一次存儲在名為config.inc.php的文件中:

<?php

define('REDIRECT_URL', '/redirect/path');

?>

然后將其包含在您的項目中:

<?php

include 'config.inc.php';

echo REDIRECT_URL;

// /redirect/path

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM