我试图隐藏.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]
答案 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]