Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
4 / 4 / 1
Регистрация: 30.09.2012
Сообщений: 28
1

Почему перестают работать ссылки при создании ЧПУ?

30.09.2012, 03:25. Показов 2521. Ответов 12
Метки нет (Все метки)

Здравствуйте, хочется чтоб на сайте ссылки были вида http://localhost/arts/67/33,
написал такой htaccess:
Bash
1
2
3
RewriteEngine On
RewriteRule ^(.*)$ index.php?get_query=$1 [QSA]
RewriteBase /
в index.php подключаю нужный файл(arts.php):
PHP
1
2
$params = explode("/", $_REQUEST['get_query']);
include($params[0].'.php');
все получается, но css и js не грузятся..
Они подключаются в arts.php таким образом:
HTML5
1
<link rel="stylesheet" type="text/css" href="/css.css" media="all" />
все уже облазил в интернете, все что нашел испробовал, вроде так все должно работать, но не работает, подскажите, пожалуйста, почему не подгружается css?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2012, 03:25
Ответы с готовыми решениями:

При загрузке на хостинг пропадают картинки и ссылки перестают работать
Здравствуйте! Пишу свой первый сайт. Не подскажите, почему при загрузке сайта на хостинг (или при...

Почему после нажатия на мышку перестают работать клавиши
У меня есть программа: если я нажимаю на клавишу &quot;стрелка вверх&quot; или на &quot;d&quot;, то текст в программе...

Почему не преобразуются ссылки чпу?
Добавил в htaccess на денвере следующую запись: RewriteEngine On RewriteBase / RewriteRule...

При подключенном питании перестают работать usb 2.0 и HDMI
В общем началось все около 2х месяцев назад, играл я в игрули на тв, уехал на работу вернулся, HDMI...

12
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
30.09.2012, 03:45 2
Руководство по настройке ЧПУ (Rewrite)
У вас всё просто перенаправляется! Вам нужно поставить условия чтобы это был ЧПУ!
C++
1
2
3
4
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?get_query=$1 [L,QSA]
1
4 / 4 / 1
Регистрация: 30.09.2012
Сообщений: 28
30.09.2012, 03:56  [ТС] 3
Цитата Сообщение от fedin-ilja2010 Посмотреть сообщение
Руководство по настройке ЧПУ (Rewrite)
У вас всё просто перенаправляется! Вам нужно поставить условия чтобы это был ЧПУ!
C++
1
2
3
4
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?get_query=$1 [L,QSA]
спасибо за ответ, но не совсем то что надо, localhost/arts.php не перенаправится, т.е. загрузится в обход index.php, а localhost/css примет это за папку.. поэтому я не стал писать строчки с rewritecond, и css перестал работать
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
30.09.2012, 04:14 4
Цитата Сообщение от sm190 Посмотреть сообщение
примет это за папку
А такая папка есть?
0
4 / 4 / 1
Регистрация: 30.09.2012
Сообщений: 28
30.09.2012, 04:40  [ТС] 5
тут независимо от того есть или нет, ведь папки все равно какие то будут, и набирая в адр.строке localhost/[имя существующей папки], нас уже не перенаправляет на index.php, также и localhost/[имя существующего файла].. вот, я так понял, что rewritecond именно эти условия и выставляет и оставил htaccess без них.. Теперь все запросы приходят к index.php в любом случае, но css почему-то не грузится..
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
30.09.2012, 05:09 6
Так потому что все запросы идут на index.php!!! Выбирайте!
Если хотите могу дать код который проверяет только существование файла
0
4 / 4 / 1
Регистрация: 30.09.2012
Сообщений: 28
30.09.2012, 05:17  [ТС] 7
Цитата Сообщение от fedin-ilja2010 Посмотреть сообщение
Так потому что все запросы идут на index.php!!! Выбирайте!
Если хотите могу дать код который проверяет только существование файла
ну вот в том то и дело что не все! localhost/[имя существующего файла/папки] не идет на index.php из-за этих условий
По поводу RewriteCond. Она используется для указания условий, при которых выполняется правила RewriteRule. К примеру эти две строчки означают
Bash
1
2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
что правила выполнятся только тогда, если нет этого файла или папки. Разберем буквы в конце
значит правило не всегда выполняется!
а если надо чтобы в любом случае исполнялось правило в независимости от того есть файл или нету?
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
30.09.2012, 05:19 8
Ни понимаю! Для чего существующие файлы и папки перенаправлять на index.php? Это бессмыслица!
0
4 / 4 / 1
Регистрация: 30.09.2012
Сообщений: 28
30.09.2012, 05:32  [ТС] 9
чтобы все запросы пользователя к хосту начинали обрабатываться с index.php независимо оттого что он там напишет.. и в общем-то мне не понятно то почему отпадает css без этих условий, почему так происходит? на мой взгляд это несвязанные никак вещи
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
30.09.2012, 05:38 10
Связанные! Без этих условий он не проверяет есть ли папка или файл и поэтому он без разницы всё сваливает в index.php
Вот что происходит (без правил, пример): есть файл /css/css.css, обрабатывается .htaccess и в итоге мы получаем вот такой файл: index.php?get_query=css/css.css, это естественно не CSS и поэтому всё будет отображаться не так!
0
4 / 4 / 1
Регистрация: 30.09.2012
Сообщений: 28
30.09.2012, 05:40  [ТС] 11
а.. вот теперь все ясно, тогда придется оставить так.. спасибо большое!
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
30.09.2012, 05:42 12
Пожалуйста
1
813 / 796 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
30.09.2012, 11:25 13
Если папка существует, но ее надо перенаправить на index.php, то дописываем следующее
Код
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?get_query=$1 [L,QSA]
RewriteRule ^(cat1|cat2|cat3)/$ /index.php
где cat1,cat2,cat3 твои папки. Или если одна папка, то просто
Код
RewriteRule ^(catalog)/$ /index.php
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2012, 11:25

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

При добавлении компонента DataGridView перестают работать всплывающие подсказки на форме
Всем привет! Тоже столкнулся с одной проблемой, связанной с компонентом dataGridView - при...

При отправке заголовка 'Content-Type: text/plain' перестают работать теги HTML
применив header('Content-type: text/plain; charset=utf-8'); перестают работать теги скажем...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.