Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess mod_rewrite:只有以数字4开头的forward参数_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess mod_rewrite:只有以数字4开头的forward参数

.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

我正在尝试修改以下重写条件,以便仅将以数字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.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]