2011-11-20 52 views
0

mywebsite.com/123应通过.htaccess显示内容mywebsite.com/project.php?id= 123 - 不幸的是我昨天因为原因改变了.htaccess rewriterule,现在重定向不起作用(它进入我们的404错误页面)。你能看到我在这里做错了吗?非常感谢!mywebsite.com/project.php?id=123应通过.htaccess重定向到mywebsite.com/123

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-z0-9\-_]+)/?$ $1.php [NC,L] 
+1

请问'123.php'真的存在吗?因为这就是你的代码片段重定向的地方 –

回答

2

最后一行更改为这应该工作:

RewriteRule ^([a-z0-9\-_]+)/?$ project.php?id=$1 [NC,QSA,L] 

,如果你想在正则表达式规则不赶包含字母字符的URL,使用

RewriteRule ^([0-9\-_]+)/?$ project.php?id=$1 [NC,QSA,L] 

并为您的新要求:

RewriteRule ^([0-9\-_]+)/?$ project.php?id=$1 [NC,QSA,L] 
RewriteRule ^([a-z\-_]+)/?$ new.php?id=$1 [NC,QSA,L] 
+0

然后他应该更新他的链接去mysite.com/number而不是mysite.com/project.php?id=number – abcde123483

+0

这两个都是完美的!我需要添加一个条件,但我应该在原始文章中列出。虽然我们需要按照说明重新指定,但我们也有实际的php页面,例如“new.php”,例如转到“/ new”。所以我需要运行你上面写的两条规则 - 我怎么才能把它们都起作用? – JoeW

+0

是的,ulvund,这是如何建立网站...但昨天改变了htaccess后,我失去了功能,并没有记录的变化(我知道小学生的错误)。 – JoeW