无法在没有任何辨别标识符的情况下匹配规则

时间:2013-08-19 13:43:56

标签: regex apache .htaccess mod-rewrite

我希望找到一种方法来匹配www.domain.tld/about文件中的www.domain.tld/contact.htaccess之类的网址。该规则必须是动态的,因为页面来自CMS,因此规则需要能够接受任何新创建的页面。

目前我有以下规则:

RewriteRule ([^/]+)$    ?cat=generic&page=$1 [L]

问题是如果没有尾随/或其他任何有助于识别捕获的内容,它只会触发404错误页面。我曾经把重写改为:

RewriteRule ([^/]+)/$   ?cat=generic&page=$1 [L]

但决定在URL的末尾没有斜杠,除非它是文件夹路径。

感谢任何可以提供帮助的人。

1 个答案:

答案 0 :(得分:1)

将此规则置于所有其他规则之上我的.htaccess:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^broadleaf$ /products/desktops/broadleaf-one [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /?cat=generic&page=$1 [L,QSA]

/?$使尾随斜杠可选。