проблема с перезаписью URL (htaccess) - PullRequest
3 голосов
/ 25 сентября 2010

Доброе утро.

В настоящее время у меня есть это маленькое правило в моем .htaccess

RewriteEngine On
RewriteBase /
RewriteRule ^brochure/([0-9]+)$ /brochure.php?cat_path=$1 [L]

(здесь я просто использую числа, например, названия категорий будут позже.)

Это перенаправляет отлично, но когда это происходит, все, что у меня есть в каталогах, теперь терпит неудачу (css, js, images, include и т. Д.)

Я понимаю проблему (это сбрасывает структуру каталогов).

Изменение правила для этого решает проблему с изображениями, css и JS.

RewriteRule ^([0-9]+)$ brochure.php?cat_path=$1 [L]

Но это не то, чего я действительно хочу.

Как правильно переписывать URL-адреса и поддерживать структуру каталогов?

Спасибо, я выполнил поиск по предыдущим вопросам, но не смог найти подходящий ответ.

Ответы [ 2 ]

2 голосов
/ 25 сентября 2010

Вы должны использовать абсолютные пути или пути относительно корня, например:

<img src="http://example.com/image.gif" alt="" />
<img src="/images/image.gif" alt="" />

Если вы знаете, что ваши изображения всегда в каталоге, это тоже будет вариант:

<img src="../images/image.gif" alt="" />
0 голосов
/ 25 сентября 2010

Хотя я искренне рекомендую ответ Лекенштейна, есть и другое решение. Ваше правило mod_rewrite перемещается с /brochure.phpcat_path=123 на /brochure/123. Вы можете просто исправить ваши относительные URL-адреса и установить правильный путь. Вы должны понимать, что эти пути анализируются браузером, поэтому фактическая структура файловой системы сервера не имеет к этому никакого отношения.

Например: css/style.css станет ../css/style.css

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...