繁体   English   中英

使用空参数的mod_rewrite查询字符串

[英]mod_rewrite query string with empty parameters

所以我想在我的.htaccess文件中执行mod_rewrite,以便以下浏览器请求:

www.mysite.com/portal/v1/v2/v3

...将以如下方式在php中进行重写和处理:

www.mysite.com/portal.php?n1=v1&n2=v2&n3=v3

需要注意的是,其中一些或所有GET变量可能为空,这意味着浏览器请求可以采用以下任何一种形式:

www.mysite.com/portal/v1/v2/v3
www.mysite.com/portal/v1/v2
www.mysite.com/portal/v1
www.mysite.com/portal

我可以在php文件中整理内容,但是.htaccess应该使用什么代码? 谢谢!

在您的/.htaccess尝试/.htaccess

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)/(.*)/(.*)/?$ /portal.php?n1=$1&n2=$2&n3=$3 [QSA,L,NC]

RewriteCond确保如果请求已经是文件或目录请求,则将跳过RewriteRule。

$1 $2 $3指的是在RewriteRule内部匹配的模式。

您可以在DOCUMENT_ROOT/.htaccess文件中使用以下代码:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ portal.php?n1=$1&n2=$2&n3=$3 [QSA,L]

RewriteRule ^([^/]+)/([^/]+)/?$ portal.php?n1=$1&n2=$2 [QSA,L]

RewriteRule ^([^/]+)/?$ portal.php?n1=$1 [QSA,L]

RewriteRule ^/?$ portal.php [L]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM