首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Url重写、htaccess和PHP如何做到这一点

问Url重写、htaccess和PHP如何做到这一点
EN

Stack Overflow用户
提问于 2015-02-21 23:27:52
回答 2查看 139关注 0票数 0

我对这个url有问题,我想知道如何将它重写为htaccess。我对这个东西很陌生,所以我很好奇如何做到这一点,例如这个url: new /?page=online

并将其重写,例如:网站/页/联机

或者这个网址:网站/?页=帐户&隐藏=x

例如:网站/页/帐户/隐藏/x

我使用这个PHP脚本将页面包含在一个HTML文档中:

代码语言:javascript
复制
    <?php

    if (empty($_GET)) 
    {
        include 'pages/index.php';
    } else {
        if (!file_exists('pages/' . $_GET['page'] . '.php' ))
        {
            header("Location: /");
        } else {
            include 'pages/' . $_GET['page'] . '.php';
        }
    }

?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-22 00:28:16

在.htaccess文件中

代码语言:javascript
复制
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Match SITE/page/account/hide/x, etc
RewriteRule ^/?page/([^\.*]+)/([^\.*]+)/([^\.*]+)?$ index.php?page=$1&$2=$3 [L,QSA]

# Match /SITE/page/online etc.
RewriteRule ^/?page/([^\.*]+)/?$ index.php?page=$1 [L,QSA]
票数 0
EN

Stack Overflow用户

发布于 2015-02-22 00:02:43

你可以这样做。

.htaccess文件

代码语言:javascript
复制
RewriteEngine On
RewriteRule (.*) control.php [L]

这意味着接收到服务器的每一个请求并将其发送到control.php文件中。然后在control.php中,我们处理指向目录的所有gets。您可能需要一些备份,例如没有GET请求;它应该转到根目录404,403吗?

control.php

代码语言:javascript
复制
<?php
$parts = '';
foreach($_GET as $key => $directories) {
    $parts .= $key . '/' . $directories . '/';
}
header('Location: ' . '/' . $parts);
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28652637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档