我试图创建两个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]
答案 0 :(得分:1)
您可以遵守以下规则:
# 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]