我经常看到在转到某个页面后的网站上,地址栏中没有页面扩展名。比如ruSO Help,地址看起来是 exactly https://ru.stackoverflow.com/help,不是https://ru.stackoverflow.com/help.phpor https://ru.stackoverflow.com/help.html。这到底是怎么做到的?这是什么技术?
另外,立即提出来自同一部歌剧的问题,但有关api该网站的问题。例如,以 Vkontakte 为例。方法调用如下所示:
https://api.vk.com/method/METHOD_NAME?PARAMETERS&access_token=ACCESS_TOKEN&v=V
也就是说,在METHOD_NAMEno之后.php,但在其他一些站点上有。另外,我还遇到了类似METHOD_NAME#...什么意思以及如何实施的问题?每种都有什么好处?
更新程序
做到了,它奏效了。服务器apache
是不是这样:
index.phppages
- 在根目录下,我的问题文件夹中的其余页面headers already sent by...已按如下方式解决。我错误地接近了问题的解决方案,我index.php只需要将重定向处理到文件中,然后将主页的内容推送到那里。
他在.htaccess开头写道:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
然后在文件中index.php:
<?php
$url = explode('/',strtolower(substr($_SERVER['REQUEST_URI'], 1)));
switch($url[0]) {
case '': { //Если пусто в адресе, то направляем на главную
include 'pages/main_page.php';
break;
}
case 'news':{
include 'pages/news_page.php';
break;
}
case 'buy':{
include 'pages/my_buy_page.php';
break;
}
case 'somepage':{
include 'pages/somepage.php';
break;
}
}
?>
有意思的是文件夹和文件夹includes在同一层级pages,比如你需要include在文件里写without ,也就是只是pages/news_page.php../include ('includes/foobar.php');
一切正常,感谢@Stanislav 的提示
A) 如果你有 apache,那么将带有必要参数的 .htaccess 文件放在站点的根目录中就足够了,同时还必须启用 mod_rewrite(在 apache 配置中)。
.htaccess
在站点本身的代码中,您需要制作一个路由系统,即 分析接收到的路径。
举个例子,我可以给出:
索引.php
如果你现在在地址栏中输入http://mysite.local你会得到INDEX,如果你输入 http://mysite.local/news你会得到NEWS。
B) 如果你有 nginx,那么所有条件都直接在站点的配置中设置。例如,像这样:
在这种情况下(顺便说一句,对于情况 A),您可以对index.php使用类似这样的东西: