Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.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
Php 重写规则-只是想知道有可能吗?_Php_Apache_Mod Rewrite_Url Rewriting - Fatal编程技术网

Php 重写规则-只是想知道有可能吗?

Php 重写规则-只是想知道有可能吗?,php,apache,mod-rewrite,url-rewriting,Php,Apache,Mod Rewrite,Url Rewriting,例如: 我想用不同的分类变量创建一个url。还有一个命令。第一个变量是蔬菜({variable01}),第二个变量是水果({variable02}),第三个变量是树木({variable03})等 xxx.com/{variable01}-{variable02}-{variable03}-{variable04}-.. 是的,我得到了这个网址 但是 如果一个变量有两个单词(或三个),而我希望分隔符也是连字符(芽甘蓝),该怎么办 例如: xxx.com/芽甘蓝-{variable02}-{var

例如:

我想用不同的分类变量创建一个url。还有一个命令。第一个变量是蔬菜({variable01}),第二个变量是水果({variable02}),第三个变量是树木({variable03})等

xxx.com/{variable01}-{variable02}-{variable03}-{variable04}-..

是的,我得到了这个网址

但是

如果一个变量有两个单词(或三个),而我希望分隔符也是连字符(芽甘蓝),该怎么办

例如:

xxx.com/芽甘蓝-{variable02}-{variable03}-{variable04}-

xxx.com/{variable02}-青苹果-{variable03}-{variable04}-

xxx.com/芽甘蓝-青苹果

这怎么可能呢


谢谢。

再也无法指定变量的边界,因此只有知道变量的确切数量,并且只有一个变量可能包含连字符,才有可能指定。您可以为此创建正则表达式:

第一个变量:

^([\w-]+)-(\w+)-(\w+)-(\w+)$
^(\w+)-([\w-]+)-(\w+)-(\w+)$
第二个变量:

^([\w-]+)-(\w+)-(\w+)-(\w+)$
^(\w+)-([\w-]+)-(\w+)-(\w+)$
但是:如果您知道每个变量最多可以有一个连字符,您也可以这样做:

/var1-foo1-var2-foo2-var3-foo3-var4

RewriteRule ^(\w+(-\w+)?)-(\w+(-\w+)?)-(\w+(-\w+)?)-(\w+(-\w+)?)$ index.php?var1=$1&var2=$3&var3=$5&var4=$7 [L]
其结果是:

array (
    'var1' => 'var1-foo1',
    'var2' => 'var2-foo2',
    'var3' => 'var3-foo3',
    'var4' => 'var4',
)

CMS(如
Drupal
)为您生成URL,而不是
Apache
。通过使用
.htaccess
您可以添加规则来处理这些URL。Igor感谢您的回复。我知道。Wordpress给了我非常漂亮的URL。谢谢wordpress。但是wordpress使用/我想要-我正在重写wordpress的url结构。制作xxx.com/bruses-sprouts/green-apple是可能的,但我想要xxx.com/bruses-sprouts-green-apple,这很接近。但这些变量有时可能有3个连字符或更多。这一切太难处理了。但这是我想要的。还有一个步骤,所有URL必须有和结束文本:D xxx.com/布鲁塞尔芽绿苹果-{variable03}-{variable04}-…-乔叔叔-乔叔叔有一个连字符,是所有生成URL的最后一部分。有可能吗?是的,同样的原则,只需在末尾附加相同的正则表达式部分,即使您不需要它作为变量。我建议在您的情况下使用/作为变量分隔符,除非您有特定的理由不这样做?