RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 567782
Accepted
IC_
IC_
Asked:2020-09-19 08:21:12 +0000 UTC2020-09-19 08:21:12 +0000 UTC 2020-09-19 08:21:12 +0000 UTC

如何在没有扩展名(.html、.php)的网站上创建路径

  • 772

我经常看到在转到某个页面后的网站上,地址栏中没有页面扩展名。比如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 的提示

php
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Stanislav
    2020-09-19T10:29:20Z2020-09-19T10:29:20Z
    1. 要实现 CNC(人类可理解的 URL),这就是所谓的友好地址,您需要决定您拥有哪种服务器:nginx 或 apache。

    A) 如果你有 apache,那么将带有必要参数的 .htaccess 文件放在站点的根目录中就足够了,同时还必须启用 mod_rewrite(在 apache 配置中)。

    .htaccess

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php?url=$1 [L]
    

    在站点本身的代码中,您需要制作一个路由系统,即 分析接收到的路径。

    举个例子,我可以给出:

    索引.php

    <?php
    
    $_GET['url'] = strtolower($_GET['url']);
    
    switch($_GET['url']) {
        case '': {
            echo 'INDEX';
            break;
        }
        case 'news':{
            echo 'NEWS';
            break;
        }
    }
    

    如果你现在在地址栏中输入http://mysite.local你会得到INDEX,如果你输入 http://mysite.local/news你会得到NEWS。

    B) 如果你有 nginx,那么所有条件都直接在站点的配置中设置。例如,像这样:

    location / {
        index  index.html index.php;
        try_files $uri $uri/ /index.php?$args;
    }
    

    在这种情况下(顺便说一句,对于情况 A),您可以对index.php使用类似这样的东西:

    <?php
    
    $url = explode('/',strtolower(substr($_SERVER['REQUEST_URI'], 1)));
    
    switch($url[0]) {
        case '': {
            echo 'INDEX';
            break;
        }
        case 'news':{
            echo 'NEWS';
            break;
        }
    }
    
    1. 要实现 API,您可以随心所欲,但我建议坚持使用 REST 标准。您可以在 Google 或 Yandex 中搜索更多内容,例如,通过短语“RESTful API”。
    • 5

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何停止编写糟糕的代码?

    • 3 个回答
  • Marko Smith

    onCreateView 方法重构

    • 1 个回答
  • Marko Smith

    通用还是非通用

    • 2 个回答
  • Marko Smith

    如何访问 jQuery 中的列

    • 1 个回答
  • Marko Smith

    *.tga 文件的组重命名(3620 个)

    • 1 个回答
  • Marko Smith

    内存分配列表C#

    • 1 个回答
  • Marko Smith

    常规赛适度贪婪

    • 1 个回答
  • Marko Smith

    如何制作自己的自动完成/自动更正?

    • 1 个回答
  • Marko Smith

    选择斐波那契数列

    • 2 个回答
  • Marko Smith

    所有 API 版本中的通用权限代码

    • 2 个回答
  • Martin Hope
    jfs *(星号)和 ** 双星号在 Python 中是什么意思? 2020-11-23 05:07:40 +0000 UTC
  • Martin Hope
    hwak 哪个孩子调用了父母的静态方法?还是不可能完成的任务? 2020-11-18 16:30:55 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    Arch ArrayList 与 LinkedList 的区别? 2020-09-20 02:42:49 +0000 UTC
  • Martin Hope
    iluxa1810 哪个更正确使用:if () 或 try-catch? 2020-08-23 18:56:13 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5