.htaccess中的Apache RewriteRule短URL不会改变

时间:2014-06-22 21:17:15

标签: .htaccess mod-rewrite url-rewriting

一直试图使用.htaccess缩短我网站的网址,但仍然没有尝试做什么,我有一个链接www.mysite.com/index.php?p=update&code=1234 我希望缩短为www.mysite.com/update/1234,这是我使用

的htaccess代码
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME}  !-f
RewriteRule ^update/([0-9]+)$ www.mysite.com/?p=update&code=$1

但每次我转到它时它都会一直显示www.mysite.com/index.php?p=update&code=1234 www.mysite.com/update/1234

1 个答案:

答案 0 :(得分:1)

试试这个。由于您没有使用www.mysite.com标记重定向,因此它会删除您的目标R;这都是您服务器上的幕后故事。并明确在index.php中设置index.php?p=update&code=$1

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME}  !-f
RewriteRule ^update/([0-9]+)$ index.php?p=update&code=$1 [L]

然后,如果我在index.php中设置以下简单代码:

echo '<pre>';
print_r($_GET);
echo '</pre>';

URL保持不变,但浏览器中的输出将为:

Array
(
    [p] => update
    [code] => 1234
)