可能重复:
getting current URL
我不想在PHP代码中使用url(使用任何GET参数等)。
所以当我的网站在网址上时:http:/sample.com/art/id/title我想在网站上显示这个字符串。
还有一件事......我的代码会在具有各种url约定的各种服务器上启动。
答案 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'];