Heim > Backend-Entwicklung > PHP-Tutorial > Wie verfolge ich den Pfad nach der PHP-Datei?

Wie verfolge ich den Pfad nach der PHP-Datei?

WBOY
Freigeben: 2016-08-04 09:21:22
Original
1391 Leute haben es durchsucht

偶然发现php文件后还能跟路径。
例如:

http://forum.sunhb.me/index.php/admin

请问这是如何实现的,如何写代码?谢谢。
(初学者,请耐心回答,谢谢)

回复内容:

偶然发现php文件后还能跟路径。
例如:

http://forum.sunhb.me/index.php/admin

请问这是如何实现的,如何写代码?谢谢。
(初学者,请耐心回答,谢谢)

大多数用php实现的应用, 都是单一入口, 即把所有对该应用的请求, 对转发到入口文件(index.php, app.php)等,

比如你现在的这个问题segmentfault,你还可以这样来访问 https://segmentfault.com/index.php/q/1010000005985468

把所有请求都转发到单一入口, 有利于面向对象php框架的设计, 也有利于URL美化。 上面的那个URL肯定是不要index.php的好看多了吧

nginx的请求转发

<code class="bash">    location {
        if (!-e $request_filename ){
            rewrite ^/(.*)  /app.php?$1 last;
        }
        
        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index    index.php;
            fastcgi_param    SCRIPT_FILENAME $request_filename;
            include          fastcgi_params;
         }
    }
</code>
Nach dem Login kopieren

以上nginx的配置就是把所有请求都转发到app.php

apache的配置

Apache常用.htaccess 文件来重写URL

<code class="bash">Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</code>
Nach dem Login kopieren

以上Apache配置吧所有请求转发到index.php

无论是那种方式, 目的都是为了隐藏应用的入口文件(index.php ...), 使你访问https://segmentfault.com/index.php/q/1010000005985468 和https://segmentfault.com/q/1010000005985468
都得到同样的效果, 对客户URL友好又不暴露自己的应用设计细节

WebServer的rewrite功能。
当然有个index.php不好看,应该是:

http://forum.sunhb.me/admin

这是PHP一个路由实现。在index.php中通过解析$_SERVER['REQUEST_URI']来进行脚本执行。

http://forum.sunhb.me/index.php/admin可能会解析为http://forum.sunhb.me/index.php?controller=admin这样就会读取admin模块的首页了

当然只这么做会在URL上显示index.php,不太美观,对SEO也不友好。通常会加上服务器的rewrite操作。

PS:初学者的话可以参考一下ThinkPHP的路由,有个大概的理解。当然也不要太依赖TP框架

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage