.htaccess重写规则条件



我正在尝试创建两个RewriteRules,但似乎无法让mod_rewrite发挥作用。

我正在努力实现以下目标。。。

domain.com/my/friendly/url = domain.com/index.php?a=$1

这个很简单,但我正在尝试检查是否存在一个数字(任意长度),然后将其添加为第二个请求参数。

例如

domain.com/my/friendly/url/100 = domain.com/index.php?a=$1&id=$2

其中$1my/friendly/url,而$2100

我尝试了很多模式,但都没有成功。我的.htaccess文件看起来像这样,并且正在失败。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)(/[0-9]+)$ index.php?a=$1&id=$2 [L,QSA]
RewriteRule ^(.*)$ index.php?a=$1 [L,QSA]

您可以有这样的规则:

# ignore all rules for real files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(.+?)/([0-9]+)/?$ index.php?a=$1&id=$2 [L,QSA]
RewriteRule ^(.+)$ index.php?a=$1 [L,QSA]

最新更新