2009-07-15 4 views
1

Я пытаюсь использовать полезные полезные URL-адреса, используя mod_rewrite. Я уверен, что это общий вопрос, но я не так жарко, с mod_rewrite:Mod_Rewrite: Вставьте «/» между переменными и значениями в URL-адрес

У меня есть этот URL: http://mysite.com/user.php?user=fatcatmat&sort=popularv

Я хочу, чтобы иметь возможность переписать так:

http://mysite.com/user/user/fatcatmat/sort/popularv (Есть ли способ удалить дубликаты в URL?)

Я думаю, что мне удалось удалить расширение PHP.

RewriteRule ^(.*)\$ $1.php [nc] 

Правильно ли это?

Для отдельных страниц у меня было бы что-то вроде этого.

RewriteRule ^/?user(/)?$ user.php 

Главная Вопрос: Его немного утомительно, чтобы сделать все выше, но есть MEGA правило перезаписи, которая будет просто поместить «/» между переменными и их значениями и удалить расширение .php со всех страниц ?

Благодарим за помощь.

ответ

0

Попробуйте эти правила:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ (/[^/?\s]+)+\.php[?/\s] 
RewriteCond %{QUERY_STRING} ^([^/&=]+)=([^/&]+)(&([^&].*))?$ 
RewriteRule \.php$ ?%4 [N,E=PATH:%{ENV:PATH}/%1/%2] 
RewriteCond %{ENV:PATH} ^/ 
RewriteRule \.php$ %{ENV:PATH} [L,R=301] 

RewriteRule ^(.*)/([^/]+)/([^/]+)$ $1?$2=$3 [N,QSA] 
RewriteRule ^([^/]+)/([^/]+)$ $1.php?$1=$2 [L,QSA] 

Но это было бы намного проще сделать это с помощью PHP: Проверьте, что URI путь было предложено (см. $_SERVER['REQUEST_URI']) и перенаправить при необходимости (см. header function).

0

Попробуйте использовать л, как это:

RewriteBase/
RewriteCond %{QUERY_STRING} ^(\w+)=(\w+)&(\w+)=(\w+)$ [NC] 
RewriteRule ^user.php$ user/%1/%2/%3/%4? [NC,R=301,L] 

RewriteRule ^user/(\w+)/(\w+)/(\w+)/(\w+)$ user.php?$1=$2&$3=$4 [L] 

 Смежные вопросы

  • Нет связанных вопросов^_^