Php 重写规则-只是想知道有可能吗?
例如: 我想用不同的分类变量创建一个url。还有一个命令。第一个变量是蔬菜({variable01}),第二个变量是水果({variable02}),第三个变量是树木({variable03})等 xxx.com/{variable01}-{variable02}-{variable03}-{variable04}-.. 是的,我得到了这个网址 但是 如果一个变量有两个单词(或三个),而我希望分隔符也是连字符(芽甘蓝),该怎么办 例如: xxx.com/芽甘蓝-{variable02}-{variable03}-{variable04}- 或 xxx.com/{variable02}-青苹果-{variable03}-{variable04}- xxx.com/芽甘蓝-青苹果 这怎么可能呢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
谢谢。再也无法指定变量的边界,因此只有知道变量的确切数量,并且只有一个变量可能包含连字符,才有可能指定。您可以为此创建正则表达式: 第一个变量:
^([\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的最后一部分。有可能吗?是的,同样的原则,只需在末尾附加相同的正则表达式部分,即使您不需要它作为变量。我建议在您的情况下使用/作为变量分隔符,除非您有特定的理由不这样做?