2015-09-01 2 views
4

Я пытаюсь преобразовать мое приложение ссылки, так что связь, как это:mod_rewrite вопросы и PHP

http://localhost/index.php?id=13&category=Uncategorized&title=just-a-link 

преобразуется к следующему:

http://localhost/13/Uncategorized/just-a-test 

до сих пор я был в состоянии сделать он с помощью:

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /index.php?id=$1&category=$2&title=$3 [QSA,L] 

но полностью разрушает ссылки на CSS и другие файлы, как он перенаправляет все запросы с запросом к index.php

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

RewriteEngine On 
RewriteRule ^([0-9]*)/([^/]*)/([^/]*)$ /index.php?id=$1&category=$2&title=$3 [QSA,L] 

это один не нарушает CSS и JS файлов, однако при переходе по ссылке, например http://localhost/13/cat/test затем попытаться перейти на другую ссылку, как http://localhost/19/Uncategorized/something, нажав на него в предыдущей странице будет вместо перенаправить вас на что-то вроде http://localhost/13/Uncategorized/19/Uncategorized/just-a-test

Как добиться того, что я описал, без какой-либо из этих странных побочных эффектов ??

ответ

2

Использование:

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

И добавьте этот код в ваш html <header>:

<base href="/"> 

ИЛИ

<base href="http://www.domain.com/"> 

Чтобы исправить относительный CSS и JS ссылки

+0

Это сработало! но есть ли способ пропустить эту часть html и все же достичь того же результата? – VSG24

+1

Ни в коем случае, поскольку вы меняете относительный путь ко всем включенным ссылкам. Но вы также можете использовать только абсолютные ссылки ... или использовать 'index.php' в папке'/A/B/C/'... – Croises