我正在开发一个基于MVC的应用程序,现在我已经设置了.htaccess重写规则。但是,我遇到了让一切看起来都正确的问题。 这是我的.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?a=$1 [L,NS]
我遇到链接问题,因为最初的网址类似于“domain.com/folder/index.php?a=whatever/whatever2/asd”,但现在它们是“domain.com/folder/whatever” / whatever2 / ASD”。
我正在生成类似“<a href='index.php?a=new/qwerty'>Qwerty</a>
”的链接,但现在当我尝试生成链接时,我必须执行类似“<a href='new/qwerty'>Qwerty</a>
”的操作,并猜猜是什么?例如,如果我在“domain.com/folder/new/lol”上点击那种链接,我将被重定向到“domain.com/folder/new/new/qwerty”并且它不是不应该那样工作。
我无法使用绝对路径,因为该软件对于下载它的用户来说易于安装,我不知道用户将在何处安装此软件,也不希望用户必须修改任何代码。
先谢谢了,
伊万
答案 0 :(得分:0)
我终于解决了它。
我创建了自己的链接生成器函数,我从$ _SERVER ['SCRIPT_NAME']中删除了index.php部分(它为我们提供了脚本的绝对路径)。 如果您有多个脚本,只需从该特殊变量中删除所有可能的脚本。
function url($rel_path) {
$start = str_replace("index.php", "", $_SERVER['SCRIPT_NAME']);
return $start.$rel_path;
}