Информация о URL mod_rewrite обязательна - PullRequest
1 голос
/ 21 мая 2009

Я новичок в этом mod_rewrite. Я успешно смог переписать URL-адрес примерно так: http://mydomain.com/products/12 к этому: http://mydomain.com/products.php?prodId=12

Но когда я даю http://mydomain.com/products/12 в адресной строке, файлы css и js не загружаются.

Но когда я получаю доступ к http://mydomain.com/products.php?prodId=12, js и css загружаются правильно. Пожалуйста, дайте мне знать, если я что-то упустил.

Мой .htaccess выглядит так:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^products/([0-9][0-9])/$ /products.php?prodId=$1 [L]

Мои папки css и js также находятся в одной папке.

Ответы [ 2 ]

5 голосов
/ 21 мая 2009

Необходимо знать, что относительные URI (то есть абсолютные и относительные пути URI) разрешаются из базового URI, который - если не объявлен явно - URI текущего документа.

Таким образом, если вы ссылаетесь на внешние ресурсы из /products/12 с относительным URI foo/bar, он разрешается в /products/foo/bar.

Чтобы исправить это, используйте абсолютные пути URI (начиная с /) или абсолютные URI (начиная с протокола) или установите явно базовый URI, отличный от текущего (см. BASE HTML-элемент ). Но обратите внимание, что изменение базового URI имеет некоторые побочные эффекты, так как влияет на каждый относительный URI.

3 голосов
/ 21 мая 2009

Вы должны использовать относительные ссылки на ваши файлы script / css, например:

<script src="my.js"></script>

Это работает для вашего старого URL, но на новом он будет выглядеть в каталоге "products", который, конечно, не существует. Вместо этого вы можете использовать абсолютные URL:

<script src="/my.js"></script>
...