2013-04-15 3 views
1

У меня есть 2 основных страницы. Он работает, как это так,Apache and Url Rewrite

<html> 
    <body> 
    <div id='menu'></div> 
    <div id='content'><?PHP require("content.php"); ?></div> 
    </body> 
</html> 

Затем content.php тянет «страницу» из URL, и проверяет его через URL «хороших страниц». Если нет, есть значение по умолчанию. Во всяком случае, типичный URL выглядит следующим образом

  • /index.php?page=user & ID = 1
  • /? Страница = группа & ID = 3

Я пытаюсь сделать это выглядит как этот

  • /пользователя/1
  • /группы/3

Это то, что у меня есть для моего файла .htaccess, который не работает на 100%. Он вытаскивает правильную страницу, но файлы css, похоже, не загружаются. Он находится в/css/в основной директории как индекс и контент.

EDIT

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^(.*)/(.*)$ /index.php?page=$1&id=$2 [L] 

Я хотел бы приложение, чтобы быть в состоянии масштаба, если это возможно.
Спасибо!

+0

Когда сочинительство правила перезаписи, то первая часть является частью 'catched' и вторая часть является' «преобразование» '. Но если вы хотите использовать vars, такие как 'group' или' id', вы должны сделать лучшее регулярное выражение для извлечения информации в первой части. '^ * $ /' извлекает что-либо от начала до конца в одном var, это не то, что вы хотите. Вы должны отдельно разделить группу и идентификатор. – MatRt

ответ

1

Вы хотите использовать или абсолютный путь к ваш CSS или используйте для него base href, или вы можете префикс пути к CSS с помощью /, если путь к нему начинается с корневого домена.

Ваш .htaccess хорошо, но может потребоваться некоторое небольшое твик:

RewriteEngine On 
RewriteRule ^(\w)/([0-9]+)/$ /index.php?page=$1&id=$2 [L,QSA] 
+0

Ahhh. Догадаться. Благодаря! –

+0

Теперь, если я пытаюсь перейти со страницы на страницу, она говорит/home/user/1, но я просто хотел перейти на страницу пользователя? –

+0

Опять же, как и в CSS, вы должны использовать абсолютные ссылки или '/' перед ссылкой или назначить 'base href' в свой' '. Вероятнее всего, лучший вариант '/'. –

0

Пожалуйста, попробуйте ниже код в .htaccess

RewriteEngine On 
RewriteRule ^user/([0-9]+)/$ /index.php?page=user&id=$2 [L,QSA] 
RewriteRule ^group/([0-9]+)/$ /index.php?page=group&id=$2 [L,QSA] 
+0

Я бы ограничил исходное регулярное выражение '' (user | group) 'лично. –

0

пожалуйста, попробуйте следующий код, который вы можете получить значения в $_GET['page']. Тогда вы можете разделить значения по / и затем может получить имя пользователя, идентификатор т.д.,

RewriteEngine On 
RewriteBase /project/ 
RewriteRule ^([A-Za-z0-9]+){0,1}$ index.php?page=%{REQUEST_URI} [L,NC,QSA] 

В приведенном выше коде вы можете захотеть заменить /project/ с /. Она будет работать отлично

0

Попробуйте .htaccess код

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^(.*)/(.*)$ /index.php?page=$1&id=$2 [L] 

Теперь Вы можете непосредственно получить доступ к веб-странице с помощью ..

www.yourdomain.com/user/1 
www.yourdomain.com/group/3 
+0

Иногда идентификатор не требуется. например page = home –

+0

, так что не пропустите id, просто сделайте 'home /' –

+0

ОК, похоже, что мой css-файл не загружается. Есть идеи? Я сделал редактирование на свой главный пост. –