[英]Mod_Rewrite PHP issue
我实际上已经尝试过此处所述的教程: http : //net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls
我试图使用该教程的PHP版本。 但是,它似乎不起作用。 实际上,这对我来说似乎有点不合逻辑。
这是我需要放置到.htaccess文件中的代码:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^.*$ ./index.php
如我所测试的,这实际上将所有内容重定向到index.php文件。 因此,我已将此代码插入到我的index.php文件中:
$request = $_SERVER['REQUEST_URI'];
$params = split("/", $request);
$safe_pages = array("login");
if(in_array($params[0], $safe_pages)) {
echo 'ok'; //insert a file here
} else {
echo 'not ok'; //header to 403.php
}
这段代码相当简单。 如果URI为/ login,则应回显:“ ok”(将文件插入此处)。
但是,每当我键入: mywebsite.com/login时,它总是总是给我index.php,并显示消息:“不好”,所以我猜想php代码应该出了问题。
您在.htaccess上缺少另一种方法
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
这应该支持网址,例如“页面/项目”
<?php
$request = $_SERVER['QUERY_STRING'];
$params = explode("/", $request);
$safe_pages = array("login");
if(in_array($params[0], $safe_pages)) {
echo 'ok'; //insert a file here
} else {
echo 'not ok'; //header to 403.php
}
?>
这不适用于'page / item'这样的网址,这应该可以:
<?php
$request = $_SERVER['REQUEST_URI'];
$params = explode("/", $request);
$safe_pages = array("login");
$last_item = count($params)-1;
if(in_array($params[$last_item], $safe_pages)) {
echo 'ok'; //insert a file here
} else {
echo 'not ok'; //header to 403.php
}
您正在测试错误的项目。 您应该在数组末尾检查字符串“ login”。 并且功能拆分已弃用,请使用explode()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.