.htaccess htaccess mod rewrite带有可选斜杠
我们正在从一个旧站点切换到一个新站点,为SEO提供更好的URL。 我正在尝试这样做:.htaccess htaccess mod rewrite带有可选斜杠,.htaccess,.htaccess,我们正在从一个旧站点切换到一个新站点,为SEO提供更好的URL。 我正在尝试这样做: RewriteRule ^products/boots/materialid/(.*)/colour/(.*)$ http://www.mydomain.com/boots/$2/$1 [R=301,L] 然而,问题是: 1) 我是否可以指定它可以包含以下字符,而不是使用(.*) 任何字母数字字符a-zA-Z0-9 任何欧元字符,如德语特殊UTF8字符 和-符号 也可以包含+符号(例如黑色+皮革) 2)
RewriteRule ^products/boots/materialid/(.*)/colour/(.*)$ http://www.mydomain.com/boots/$2/$1 [R=301,L]
然而,问题是:
1) 我是否可以指定它可以包含以下字符,而不是使用(.*)
- 任何字母数字字符
a-zA-Z0-9
- 任何欧元字符,如德语特殊UTF8字符
和
符号-
- 也可以包含
符号(例如黑色+皮革)+
www.mydomain.com/materialid/leather/colour/blue/
把我送到
www.mydomain.com/blue//leather
额外的斜杠是因为原始URL中“blue”后的斜杠,但我需要排除它。试试这个:
RewriteRule ^products/boots/materialid/([^/]*)/colour/([^/]*)/?$ http://www.mydomain.com/boots/$2/$1 [R=301,L]
[^/]
匹配任何非斜杠字符/?
表示可选的尾随斜杠(请注意,它位于捕获括号之外,因此不会包含在重写的URL中)
编辑
根据您的评论,要添加可选的/index.php:
RewriteRule ^products/boots/materialid/([^/]*)/colour/([^/]*)(/|/index\.php)?$ http://www.mydomain.com/boots/$2/$1 [R=301,L]
试试这个:
RewriteRule ^products/boots/materialid/([^/]*)/colour/([^/]*)/?$ http://www.mydomain.com/boots/$2/$1 [R=301,L]
[^/]
匹配任何非斜杠字符/?
表示可选的尾随斜杠(请注意,它位于捕获括号之外,因此不会包含在重写的URL中)
编辑
根据您的评论,要添加可选的/index.php:
RewriteRule ^products/boots/materialid/([^/]*)/colour/([^/]*)(/|/index\.php)?$ http://www.mydomain.com/boots/$2/$1 [R=301,L]
通过在正则表达式中附加
?
来实现在正则表达式中使字符可选。所以www.url.com/material/leather/colour/blue/?
非常感谢!请参见下面我的评论-我可以添加可选的/index.php吗?e、 g.www.url.com/material/leather/color/blue/?(index.php)?通过在正则表达式中附加?
来实现在正则表达式中使字符可选。所以www.url.com/material/leather/colour/blue/?
非常感谢!请参见下面我的评论-我可以添加可选的/index.php吗?e、 g.www.url.com/material/leather/color/blue/?(index.php)?非常感谢!这起作用了。太好了:)你能告诉我如何在上面提到的代码中添加一个可选的“/index.php”吗?当旅行的时候?是可选的,也有可能像这样访问URL..../index.php-因此我希望应用相同的规则。有可能吗?@rishijd是的,你也可以在末尾有一个可选的index.php
。但是,您希望避免重定向blueindex.php
,因此需要一些稍微花哨的正则表达式:../blue(/(index\.php)??
。注意转义的
。非常感谢!这起作用了。太好了:)你能告诉我如何在上面提到的代码中添加一个可选的“/index.php”吗?当旅行的时候?是可选的,也有可能像这样访问URL..../index.php-因此我希望应用相同的规则。有可能吗?@rishijd是的,你也可以在末尾有一个可选的index.php
。但是,您希望避免重定向blueindex.php
,因此需要一些稍微花哨的正则表达式:../blue(/(index\.php)??
。注意转义的
。