2012-03-09 2 views
0

Я использую этот RewriteRule ^page/([0-9]+)/ page.php?id=$1, чтобы изменить URL http://example.com/page.php?id=00001 на http://example.com/page/00001/, хотя любые изображения или страницы CSS/JS/etc связаны неправильно.Проблема с URL RewriteRule

EG: http://example.com/_img/image.jpg превращается в http://example.com/page/00001/_img/image.jpg

Есть ли способ изменить весь каталог, а? Например, я пробовал это:

RewriteRule ^page/([0-9]+)/(.*?) $2 

Но это не помогло. Спасибо за помощь!

EDIT:
Хорошо, это, кажется, работает, но только один из них работа в зависимости, которая является первым.

RewriteEngine on 

RewriteRule ^page/([0-9]+)/(.*)$ $2 
RewriteRule ^page/([0-9]+)/ page.php?id=$1 

Таким образом, она игнорирует вторую, так http://example.com/page/00001/ теперь http://example.com/index.php?id=00001 вместо http://example.com/page.php?id=00001
Возможно ли это также принимать во внимание второй один?

+0

В случае 'HTTP: // example.com/страница/00001 /' оба правила перезаписи будут применяться. Какую информацию вы бы указали за последней косой чертой? –

+0

http://example.com/page/00001/_img/ или что угодно, что должно «перенаправляться» на http://example.com/_img/. В принципе, я хочу, чтобы http://example.com/page/00001/ перенаправлялся на http://example.com/page.php, но все остальное просто было http://example.com/whatever –

+0

Ах, неважно , Починил это. Благодаря! :) –

ответ

0

После многих попыток выясняется, что я ошибался. Оно должно быть таким:

RewriteEngine on 

RewriteRule ^page/([0-9]+)/$ page.php?id=$1 
RewriteRule ^page/([0-9]+)/(.*) $2 

Это делает http://example.com/page/00001/ на самом деле ссылаются на http://example.com/page.php?id=00001, но все остальное - как http://example.com/page/00001/_img/image.jpg использовать реальный URL, который будет http://example.com/_img/image.jpg.

0

Mayby что-то, как это будет работать:

RewriteEngine On 

RewriteRule ^page/([0-9]+)/(.+)$ $2 
RewriteRule ^page/([0-9]+)/?$ /page.php?id=$1