Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于目录基名称返回PHP页面,无需重定向_Php_Redirect_Header_Pathinfo - Fatal编程技术网

基于目录基名称返回PHP页面,无需重定向

基于目录基名称返回PHP页面,无需重定向,php,redirect,header,pathinfo,Php,Redirect,Header,Pathinfo,我希望服务器根据目录名返回一个特定的PHP页面,而不需要重定向。例如: http://www.example.com/home 应返回与以下相同的结果: http://www.example.com/index.php?page=home 但是它不应该重定向地址您需要创建一个名为“.htaccess”的特殊文件,并将其放在web应用程序根目录中。文件内容可能如下所示: Options +FollowSymLinks RewriteEngine on RewriteRule ^/home$

我希望服务器根据目录名返回一个特定的PHP页面,而不需要重定向。例如:

http://www.example.com/home
应返回与以下相同的结果:

http://www.example.com/index.php?page=home

但是它不应该重定向地址

您需要创建一个名为“.htaccess”的特殊文件,并将其放在web应用程序根目录中。文件内容可能如下所示:

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^/home$ /index.php?page=home [L]
然后配置Apache(httpd.conf,httpd vhosts.conf)以允许web应用程序使用该.htaccess配置文件

<VirtualHost 127.0.0.1:80>
    DocumentRoot "/path/to/your/webapp"
    ServerName localhost
    <Directory "/path/to/your/webapp">
        AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>

DocumentRoot“/path/to/your/webapp”
服务器名本地主机
允许超越所有
命令允许,拒绝
通融
这是一本好书


如果没有重定向,PHP无法做到这一点,但有很多解决方案:

将mod_rewrite与apache(.htaccess)一起使用


另一种方法是在/home中添加index.php,它的唯一功能是包含文档根index.php。

看看像(我最喜欢的)CodeIngniter或Zend这样的框架,但你不局限于此,或者尝试通过构建自己的路由器来改造轮子。

如果你使用Apache,你可以查看htaccess脚本。通过谷歌搜索有很多选择

RewriteEngine on
RewriteRule ^home$ /index.php?page=home