PHP和调用url?

时间:2011-12-02 17:50:41

标签: php http url

  

可能重复:
  getting current URL

我不想在PHP代码中使用url(使用任何GET参数等)。

所以当我的网站在网址上时:http:/sample.com/art/id/title我想在网站上显示这个字符串。

还有一件事......我的代码会在具有各种url约定的各种服务器上启动。

3 个答案:

答案 0 :(得分:3)

以下内容应该为您提供域名和网址:

$_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];

答案 1 :(得分:2)

// Get HTTP/HTTPS (the possible values for this vary from server to server)
$myUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && !in_array(strtolower($_SERVER['HTTPS']),array('off','no'))) ? 'https' : 'http';
// Get domain portion
$myUrl .= '://'.$_SERVER['HTTP_HOST'];
// Get path to script
$myUrl .= $_SERVER['REQUEST_URI'];
// Add path info, if any
if (!empty($_SERVER['PATH_INFO'])) $myUrl .= $_SERVER['PATH_INFO'];
// Add query string, if any (some servers include a ?, some don't)
if (!empty($_SERVER['QUERY_STRING'])) $myUrl .= '?'.ltrim($_SERVER['REQUEST_URI'],'?');

echo $myUrl;

应考虑到您可能遇到的任何变化(虽然mod_rewrite可能会以不可纠正的方式搞砸它,但我不确定)。

答案 2 :(得分:0)

你必须有一个.htaccess文件,它叫做URL重写,例如.htaccess文件:

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php?query=$1&%{QUERY_STRING}

这会将art / id / title之类的内容发送到index.php页面,并且可以使用$ _GET ['query']来使用。所以在index.php文件中,您可以像这样使用变量:

echo $_GET['query'];