htaccess mod重写可防止变量在包含的文件中假设其值

时间:2019-04-13 16:13:06

标签: php .htaccess mod-rewrite

我最近在htaccess文件中添加了一个mod重写规则,以处理解析类别页面。在此站点上获得帮助后,htaccess可以正常工作。但是,在实施新的htaccess之后,我注意到脚本中发生了两个不同的冲突/问题。

1] 尽管我在{的下面添加了<base href="/" />,但我不得不将所有include()函数,脚本链接和图像源从路径更改为完整的url才能使脚本起作用。 {1}}。

2] 包含文件中的变量,无论是通过<head>还是include();,都不再假定其值已在要调用的页面上预先建立。 / p>

例如:

在将重写规则添加到htaccess文件之前,使用eval('?>'.file_get_contents($topad).'<?php;');时,以下形式可以很好地工作……但是,尽管在页面中调用了形式,但变量{{1} }和include()不采用其值。

$level

如果我将表单放在文件上,它就可以正常工作。

但是...

应注意,放置表单的文件本身就是通过$page_url函数调用的文件,尽管通过echo '<form action="'.$level.'core/login/login.php" method="POST">'; echo '<input type="hidden" name="returnto" value="'.$page_url.'">'; echo '<div class="login-form-wrap">'; echo '<fieldset><legend>Member Login</legend>'; echo '<p>'; echo '<label>Email</label>'; echo '<input name="email" class="col_12" type="text" placeholder="Enter Email..." />'; echo '</p>'; echo '<p>'; echo '<label>Password</label>'; echo '<input name="password" class="col_12" type="password" placeholder="Enter Password..." />'; echo '</p>'; echo '<p>'; echo '<input name="submitit" type="submit" class="button radius text-center expand" value="Log In">'; echo '</p>'; echo '</fieldset>'; # forgot links echo '<p class="center">'; echo '<span class="get-pass forgot-link" title="">Forgot Password</span> | '; echo '<span class="go-home forgot-link" title="">Go to Home Page</span>'; echo '</p>'; echo '</div>'; echo '</form>'; 调用了文件,但一切正常很好。

我不知道如何解决此问题。非常感谢您的协助。

正在使用htaccess:

include();

0 个答案:

没有答案