我接受以下网址:
http://www.random.com/film/1
我需要做的是将其发送到基本目录中的server.php
,然后在/
上展开地址并使用电影和1作为变量。
我如何实现这一目标?
目前,该链接显示没有页面存在!!
答案 0 :(得分:3)
因为我已经打开它,所以为apache创建一个.htaccess
文件,如下所示:
<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/film
或/api-v1/v1/film/
会给你:
Array
(
[1] => api-v1
[2] => v1
[3] => film
[4] =>
)
答案 1 :(得分: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";
}