我正在使用以下htaccess文件作为我的文件夹。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ index.php?su_id=$1&t=$2
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/$ index.php?su_id=$1&t=$2
</IfModule>
当我尝试访问时它无法正常工作
www.abc.com/k/?su_id=87&t=this-is-a-google-boy (Original URL)
www.abc.com/k/87/this-is-a-google-boy (try to access url)
它正在运作
www.abc.com/k/87/102 (try to access url and it is working)
答案 0 :(得分:0)
第一个网址不符合您的规则
你要求'带有_和 - 的任何字母或数字后跟一个/然后是一个数字。
/k/?su_id=xxx
在/之后没有数字,而是查询字符串。按照您希望的URL,您需要遵循以下规则:
RewriteRule ^([a-Z0-9+-]+)/([0-9]+)/([a-z0-9-]+)$ index.php?su_id=$1&t=2 [NC,QSA]
答案 1 :(得分:0)
你的规则不正确你将字符串传递给数字规则,所以它不会工作
www.abc.com/k/87/this-is-a-google-boy
不符合规则
RewriteRule ^([a-zA-Z0-9 _-] +)/([0-9] +)/ $ index.php?su_id = $ 1&amp; t = $ 2
尝试
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?su_id=$1&t=$2
接受/ stringornumber / number / stringornumber
([0-9]+) accept only number
([a-zA-Z0-9_-]+) accept both number & string