而不是使用?id = 30

时间:2015-11-20 07:09:09

标签: php

感谢你看看这个奇怪而又笨拙的帖子。

我一直在汽车网站上工作一段时间(版本:1)这是非常基本的,现在我正在学习更多关于POO的内容,所以我想我会更新它......

我之前在Scripts网站上看到他们这样做:

示例:

websiteurl.com/scripts/view/300或websiteurl.com/scripts/view/1761/media/  或者是websiteurl.com/scripts/view/1761/comments

我目前正在这样做:

mywebsite.com/viewCars.php?id=300但我希望不要这样做,这样做:

mywebsite.com/cars/view/300

谢谢,我希望有人理解我的问题,原谅我的拼写错误,但英语不是我的第一语言。

3 个答案:

答案 0 :(得分:0)

假设你正在使用apache,那么soemthiing应该会给你你提到的格式

in your .htaccess file
----------------------

RewriteEngine On
RewriteBase /
RewriteRule ^cars/view/([0-9]+)$ viewCars.php?id=$1 [NC,L]

答案 1 :(得分:0)

你听说过htaccess吗?检查文件。您可以通过使用htaccess和一些常规表达来解决您的问题。以下是您的问题的示例解决方案。

https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules

对于您的解决方案,您可以在htaccess中编写以下代码。

RewriteEngine On
RewriteBase /
RewriteRule ^cars/view/([0-9]+)$ viewCars.php?id=$1 [NC,QSA,L]

答案 2 :(得分:0)

如果您使用的是MVC架构,则可以执行以下操作:

function __construct() {

    $url = isset($_GET['url']) ? $_GET['url'] : null;
    $url = rtrim($url, '/');
    $url = explode('/', $url);


    if (empty($url[0])) {
        require 'controllers/index.php';
        $controller = new Index();
        $controller->index();
        return false;
    }

    $file = 'controllers/' . $url[0] . '.php';
    if (file_exists($file)) {
        require $file;
    } else {
        $this->error();
    }

    $controller = new $url[0];
    $controller->loadModel($url[0]);

    // calling methods
    if (isset($url[2])) {
        if (method_exists($controller, $url[1])) {
            $controller->{$url[1]}($url[2]);
        } else {
            $this->error();
        }
    } else {
        if (isset($url[1])) {
            if (method_exists($controller, $url[1])) {
                $controller->{$url[1]}();
            } else {
                $this->error();
            }
        } else {
            $controller->index();
        }
    }


}