Проблема с mod_rewrite и ссылками - PullRequest
1 голос
/ 14 ноября 2010

Я разрабатываю приложение на основе MVC, и теперь я установил правила перезаписи .htaccess.Однако у меня проблемы с тем, чтобы все выглядело правильно.Это мой .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?a=$1 [L,NS]

У меня проблемы со ссылками, так как сначала URL-адреса были похожи на "domain.com/folder/index.php?a=whwhat/whwhat2/asd",но теперь они являются "domain.com/folder/whwhat/whwhat2/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», и это не так.не предназначен для такой работы.

Я не могу использовать абсолютные пути, поскольку программное обеспечение должно быть простым в установке для пользователей, которые его скачивают, и я не могу знать, куда пользователи будут устанавливатьэто программное обеспечение, и я не хочу, чтобы пользователи должны были что-либо изменить код.

Спасибо заранее,

Иван

1 Ответ

0 голосов
/ 14 ноября 2010

Я наконец решил это.

Я создал собственную функцию генератора ссылок и удалил часть index.php из $ _SERVER ['SCRIPT_NAME'] (которая дает нам абсолютный путь к сценарию). Если у вас было несколько сценариев, просто удалите все возможные сценарии из этой специальной переменной.

function url($rel_path) {
  $start = str_replace("index.php", "", $_SERVER['SCRIPT_NAME']);
  return $start.$rel_path;
}
...