Я пытаюсь написать скрипт, который может переписывать URL-адреса в виде слагов, например:
http://www.mysite.com/mystorytitle/
и я сделал это в своих кодах:
RewriteRule ^(.*)\/$ app=News&file=article&title=$1 [L]
и в моих php-кодах я создал слаг из названия истории как:
$slug_title = mysql_real_escape_string($mtitle);
$show= "<a href=\"$slug_title/\">$mtitle</a>";
теперь все в порядке, если только, когда я не нажимаю на ссылку, она переходит на страницу, но без какого-либо стиля, javascripts и изображений.
я уверен, что проблема связана с путем для файлов css и... который был изменен на уровне
как я нахожусь на этом пути: http://www.mysite.com/%D8%A7%DB%8C%D9%85%DB%8C%D9%84/
поэтому, если страница требует файла css, как это:
<link rel="StyleSheet" href="includes/NAV.css" type="text/css" />
один уровень изменился, и чтобы это сработало, я должен вернуться на уровень как:
<link rel="StyleSheet" href="../includes/NAV.css" type="text/css" />
я думаю, это рассматривается как папка, а не переписанный путь
но я уверен, что должен быть другой способ заставить этот скрипт работать без изменения всех путей
заранее спасибо
mysql_real_escape_string
— это неправильный экран для помещения текста в HTML. Это только для запросов MySQL и не защитит вас от внедрения HTML (XSS). Вместо этого вы должны использоватьhtmlspecialchars
вместо$mtitle
. В идеале вы также должны использоватьurlencode
для$slugtitle
, чтобы он работал как простой старый URI, а также как IRI. - person bobince   schedule 26.02.2010