Переписать URL с помощью .htaccess - PullRequest
1 голос
/ 24 декабря 2010

У меня есть этот URL: http://www.test.com/page.php?k=m1ns

и я хочу этот: http://www.test.com/r/m1ns

Мой .htaccess:

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteRule ^k/([^/\.]+)/?$ page.php?k=$1 [L]

# force www. in all requests
RewriteCond %{HTTP_HOST} ^test\.com [NC]
RewriteRule ^(.*)$ http://www.test.com/$1 [L,R=301]

# enable hiding php extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Но это не такт работа.Работают только правила не-www -> www и скрытия php.Если я поставлю http://www.test.com/page.php?k=m1ns не переписывает.

Кто-нибудь знает почему?

Спасибо.

Ответы [ 2 ]

1 голос
/ 25 декабря 2010
Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteRule ^r/([^/]*)$ /page.php?k=$1 [L]

На вашей верхней странице .php

if (strstr($_SERVER['REQUEST_URI'], '/page.php?k=' . $var . '')) {
    header("HTTP/1.1 301 Moved Permanently");
    header("location:http://www.test.com/r/" . $var );
    exit();
}
0 голосов
/ 24 декабря 2010

Попробуйте это

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^r/(.*)/ /page.php?k=$1 [L]

Должно работать независимо от того, введен ли www.

...