我正在尝试让mod-rewrite在htaccess文件中工作。
我试图获得的URL是:
blog/{id}-{title}/
因此,例如:
http://localhost/blog.php?id=12&title=this-is-a-test
会成为:
http://localhost/blog/12-this-is-a-test/
没有我一直在尝试的是:
RewriteEngine On
RewriteRule ^blog/([0-9]+)-([a-zA-Z-])/$ blog.php?id=$1&title=$2
当我转到时,http://localhost/blog/12-this-is-a-test/
出现404错误,但是如果转到http://localhost/blog.php
测试页面,则测试文本将按预期显示。
也许我写的规则不正确,如果有人可以建议修改或有任何好的教程,我一直在阅读http://httpd.apache.org/docs/2.0/misc/rewriteguide.html,但是避风港无法找出我要去哪里。
非常感谢您的帮助,甚至为我指明了正确的方向,谢谢。
我在重定向规则应用的每个链接上都得到了这个:
http://localhost/C:/Apache/htdocs/test5/blog/1-Lorem-ipsum-dolor-sit-amet
在将以下内容添加到虚拟主机后:
<Directory "{path}">
Options All
AllowOverride All
Order allow,deny
Allow from all
</Directory>
而且我还必须清除浏览器缓存,因为它也会引起问题。一旦采取了这两项行动,下面的anubhava答案就可以解决我的问题。
您的正则表达式缺少量词+
,它导致第二个捕获组失败,因为它只期望一个字符:
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^blog/([0-9]+)-([a-zA-Z-]+)/?$ blog.php?id=$1&title=$2 [L,NC,QSA]
也最好关闭它,MultiViews
因为您的php文件名blog.php
与目录名相同blog
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句