我正在尝试创建两个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
其中$1
是my/friendly/url
,而$2
是100
。
我尝试了很多模式,但都没有成功。我的.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]