I've this url: http://www.test.com/page.php?k=m1ns
and I want this one: http://www.test.com/r/m1ns
My .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}\开发者_Python百科.php -f
RewriteRule ^(.*)$ $1.php
But it doesn't work. Only the non-www -> www and hiding php rules works. If I put http://www.test.com/page.php?k=m1ns does not rewrite.
Anyone knows why?
Thanks.
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^r/([^/]*)$ /page.php?k=$1 [L]
On your top page.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();
}
Try this
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^r/(.*)/ /page.php?k=$1 [L]
It should work regardless of whether or not www is entered.
精彩评论