Как организовать свой сайт, чтобы .htaccess работал - PullRequest
2 голосов
/ 14 октября 2010

Я впервые создаю динамический веб-сайт, поэтому я новичок в этом.

Мне нужно сопоставить этот URL:

www.domain.org/world/2.html

с этим:

www.domain.org/index.php?html=world&rss=2

Для этой цели я использую это правило перезаписи:

RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?html=$1&rss=$2 [L]

И это должно работать, но это не так!

Если я напишу:

RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?html=$1&rss=$2 [R]

сайт перенаправляет меня на правильный URL, и все работает правильно.

Однако, когда я снова изменяю модификатор [R] на [L], я получаю очень странную страницу.Это то же самое, что мне нужно, но файл CSS не загружен.Следовательно, внутренний URL-адрес не совсем совпадает с тем, что мне нужно.Когда я повторяю переменные $_GET[html] и $_GET[rss], то они тоже правильные.Кроме того, когда я перехожу со ссылки www.domain.org/world/2.html на другую ссылку из меню, ее сборка выглядит следующим образом: www.domain.org/world/2.html/environment.html вместо www.domain.org/environment.html

Итак, я предполагаю, что проблема связана с организацией моегосайт..Htacces находится в одном каталоге.Шаблон и файл css находятся в другом каталоге, а файлы .php, обрабатывающие разные страницы, находятся в разных каталогах.Но опять же

www.domain.org/index.php?html=world&rss=2 

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

Так что я действительно запутался, где проблема ?!Пожалуйста, если у кого-то есть подсказка, я буду очень рад услышать это.

Спасибо за ваше время и внимание.

1 Ответ

0 голосов
/ 21 мая 2011

Однако, когда я снова изменяю модификатор [R] на [L], я получаю очень странную страницу.Это то же самое, что мне нужно, но файл CSS не загружен.

Я полагаю, вы используете относительные URI для ссылки на таблицу стилей.Например:

<link rel='stylesheet' href='../screen.css'>

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

Решение: Используйте абсолютные пути, начинающиеся с /:

<link rel='stylesheet' href='/screen.css'>
<a href='/about/'>About us</a>
...