.htaccess mod_rewrite:只有以数字4开头的forward参数
我正在尝试修改以下重写条件,以便仅将以数字4开头的字符串作为变量重定向到process.php页面:.htaccess mod_rewrite:只有以数字4开头的forward参数,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我正在尝试修改以下重写条件,以便仅将以数字4开头的字符串作为变量重定向到process.php页面: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)$ /process.php?variable=$1 [L] 那么下面 http://www.domain.com/4shopping 将映射到 http://www.domain.com/process.ph
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /process.php?variable=$1 [L]
那么下面
http://www.domain.com/4shopping
将映射到
http://www.domain.com/process.php?variable=4shopping
但以下情况不会发生
http://www.domain.com/shopping
原因是/shopping只是一个普通页面(由Wordpress提供),但/4shopping是一个代码,应该作为变量映射到/process.php。这样做可以:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(4[^/]*)$ /process.php?variable=$1 [L]
正则表达式表示:
^ Start of string
( Start capturing group (for $1)
4 A literal "4"
[^/]* Any character except "/", 0 or more times
) End capturing group
$ End of string
谢谢你的精彩解释。如果不满足4个条件,您知道如何切换回第二个条件吗?对于Wordpress来说,第二个条件是:RewriteRule/index.php[L]如果运行RewriteCond%{REQUEST_FILENAME},我只会出错-f RewriteCond%{REQUEST_FILENAME}-重写规则^(4[^/]*)$/process.php?变量=$1[L]重写规则/php[L]很抱歉,这有点混乱。我想说的是,我需要这样的东西:“如果存在4,那么/process.php?variable=$1[L],否则/index.php[L]