.htaccess mod_rewrite正则表达式不匹配

时间:2014-08-01 09:58:45

标签: php regex apache .htaccess mod-rewrite

我一直在为mod_rewrite

尝试以下正则表达式
RewriteEngine on
RewriteRule [^\s].* /product/pllist.php

示例网址是 www.example.com/matchthis 如果在www.example.com之后写了一些内容我想匹配,

在上面的正则表达式中它匹配,但是如果我在www.example.com之后没有任何内容,它会返回错误而不是重定向到www.example.com

修改

我还有其他的改编网址也应该有用

RewriteRule ^style\/ /style/fashion.php

2 个答案:

答案 0 :(得分:0)

如果要将所有内容重写为/product/pllist.php,请使用:

RewriteEngine on

RewriteRule ^style/?$ /style/fashion.php [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ product/pllist.php [L]

您的正则表达式^[\s].*与空字符串不匹配,因此http://www.domain.com/将不会被重写。

答案 1 :(得分:0)

如果您只想匹配特定的URI,可以使用

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/matchthis [NC]
RewriteRule . /product/pllist.php [L]