htaccess文件扩展名隐藏并传递url字符串

时间:2015-09-26 07:20:58

标签: .htaccess mod-rewrite friendly-url

我试图隐藏.php扩展名,并用尾随斜杠重写url字符串。文件扩展名隐藏工作正常,但url字符串不是。

来自:

http://www.example.com/abc.php?id1=1&id2=2

要:

http://www.example.com/abc/id1/1/id2/2

以下是我的.htaccess

RewriteEngine On
Options -Multiviews

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^(.*)\/([0-9]+)$ $1.php?id=$2&%1 [L]

1 个答案:

答案 0 :(得分:1)

首先,检查%{THE_REQUEST}变量。如果它满足您的匹配条件,则重定向。

RewriteCond %{THE_REQUEST} ^GET\ /abc\.php\?(id1)=(\d+)&(id2)=(\d+) [NC]
RewriteRule ^ /abc/%1/%2/%3/%4? [R=301,L]

接下来,在内部重写friendly-url。

RewriteRule ^abc/(id1)/(\d+)/(id2)/(\d+)$ /abc.php?$1=$2&$3=$4 [NC,L]