2015-09-26 167 views
0

我想隐藏.php扩展名,并且还用尾部斜线重写了url字符串。文件扩展名隐藏工作正常,但url字符串不是。htaccess文件扩展名隐藏和传递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

首先,检查%{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] 
相关问题