странное выполнение .htaccess

S3
На сайте с 29.03.2012
Online
367
381

Настроил ссылки на сайте следующим образом:


<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^novosti$ news.php [L]
RewriteRule ^novost/([0-9]+)$ single-post.php?id=$1 [L]
</IfModule>

заметил не понятную мне вещь - если в урле есть симвло /, то загружается не сама страница, а ее копия и не подгружаются скрипты, в дебагере сразу появляется куча ошибок. Последнее правило работает с ошибкой. Если в урле нет косой - все нормально. Может, кто подскажет, что это за странное поведение?

если заменить на


RewriteRule ^novost-([0-9]+)$ single-post.php?id=$1 [L]

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

siv1987
На сайте с 02.04.2009
Offline
427
#1
Sly32:
заметил не понятную мне вещь - если в урле есть симвло /, то загружается не сама страница, а ее копия и не подгружаются скрипты

Потому что у вас скрипты на страницы имеют относительные адреса, и со слешем они будут загружатся относительно /novost/

S3
На сайте с 29.03.2012
Online
367
#2
siv1987:
Потому что у вас скрипты на страницы имеют относительные адреса, и со слешем они будут загружатся относительно /novost/

И как с этим грамотно бороться? Указывать адреса через переменную, чтоб на выходе получался асолютный адрес?

siv1987
На сайте с 02.04.2009
Offline
427
#3

Абсолютные адреса. Или base href, но все же урл нужно писать абсолютным адресом.

S3
На сайте с 29.03.2012
Online
367
#4
siv1987:
Абсолютные адреса. Или base href, но все же урл нужно писать абсолютным адресом.

Разобрался, спасибо. Адреса скриптов прописал абсолютно через $_server, что бы не привязываться к конкретному домену.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий