重写规则无法正常工作
Rewrite rule is not working properly
我正在尝试使用 Apache Mod-Rewrite 编写 SEO 友好的 usls。
我的网址是这样的。
index.php?p=edit-profile
index.php?p=edit-profile&id=3
index.php?p=edit-profile&id=3&city=sydney
index.php?p=edit-profile&id=3&city=sydney&name=some example text
我就是这样试的。
RewriteRule ^([\w-]+)/?$ index.php?p= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/?$ index.php?p=&id= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ index.php?p=&id=&city= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/([\w-]+)/?$ index.php?p=&id=&city=&name= [L,QSA,NC]
在这里,第一条、第二条和第三条规则对我有用。但我的问题是,如果我有一个带空格的字符串作为第四个变量,我的第四条规则就不起作用了。而且,如果我再次用一个词来表达,那也行不通。
谁能告诉我如何解决这个问题。有没有办法用连字符替换这些空格?
谢谢。
你可以在你的角色中包含 space class:
RewriteRule ^([\w-]+)/?$ index.php?p= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/?$ index.php?p=&id= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ index.php?p=&id=&city= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/([\s\w-]+)/?$ index.php?p=&id=&city=&name= [L,QSA,NC]
我正在尝试使用 Apache Mod-Rewrite 编写 SEO 友好的 usls。
我的网址是这样的。
index.php?p=edit-profile
index.php?p=edit-profile&id=3
index.php?p=edit-profile&id=3&city=sydney
index.php?p=edit-profile&id=3&city=sydney&name=some example text
我就是这样试的。
RewriteRule ^([\w-]+)/?$ index.php?p= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/?$ index.php?p=&id= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ index.php?p=&id=&city= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/([\w-]+)/?$ index.php?p=&id=&city=&name= [L,QSA,NC]
在这里,第一条、第二条和第三条规则对我有用。但我的问题是,如果我有一个带空格的字符串作为第四个变量,我的第四条规则就不起作用了。而且,如果我再次用一个词来表达,那也行不通。
谁能告诉我如何解决这个问题。有没有办法用连字符替换这些空格?
谢谢。
你可以在你的角色中包含 space class:
RewriteRule ^([\w-]+)/?$ index.php?p= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/?$ index.php?p=&id= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ index.php?p=&id=&city= [L,QSA,NC]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/([\s\w-]+)/?$ index.php?p=&id=&city=&name= [L,QSA,NC]