0

我接受如下 URL:

http://www.random.com/film/1

我需要做的是将它发送到server.php基本目录中,然后将地址分解/并使用电影和 1 作为变量。

我如何实现这一目标?

目前,该链接显示不存在页面!

4

2 回答 2

3

因为我已经打开了它,.htaccess所以为 apache 创建一个如下所示的文件:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?(.*)$ server.php?1=$1&2=$2&3=$3&4=$4 [NC,QSA,L]
</IfModule>

根据评论对我的第一个答案进行了严重修改,因此总结一下现在这里的内容以及 PHP 中的内容: /api-v1/v1/film/1将为您提供以下内容$_GET

Array
(
    [1] => api-v1
    [2] => v1
    [3] => film
    [4] => 1
)

第四个参数,在这种情况下1是可选的,省略它并使用/api-v1/v1/filmor/api-v1/v1/film/会给你:

Array
(
    [1] => api-v1
    [2] => v1
    [3] => film
    [4] => 
)
于 2013-04-14T23:37:21.707 回答
2

您应该查看.htaccess用于这种重定向的文件,而不是与其他列表完全重复:

.htaccess文件中:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)$ server.php?$1=$2 [L]
RewriteRule ^([^/]+)$ server.php?$1 [L]

server.php

$parameterName = 'film';
$parameterValue = isset($_GET[$parameterName]) ? $_GET[$parameterName] : NULL;

if (!is_null($parameterValue)) {
    echo "Parameter found";
} else {
    echo "Parameter not found";
}
于 2013-04-14T23:34:57.550 回答