2011-04-14 41 views

回答

1

其他的答案是正确的关于前沿斜线,你应该赶在末尾加上斜杠的可能性(铭记“$”标志的结束。字符串

尝试这样:

 
RewriteBase/

RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 

RewriteRule ^([a-z-]+)/?$ /$1.php [QSA,NC,L] 

注:QSA国旗代表“查询字符串追加”,将传递到相关页面的任何URL查询

心连心

编辑:对于URL的含有比小写字母的,你应该改变的范围组的其他字符,请使用不区分大小写的开关或简单地使用(.*)按照其他人的例子!

+0

+1表示斜线。 @Adam给出的例子使用它,但是他的重写规则不包括它。 – 2011-04-14 12:08:07

+0

特定名称的东西会变得非常棘手!如果你想让你的所有页面都使用这种方法,你最终必须为每个页面编写规则!你最好创建一个单独的页面来处理基于ID的重定向,接受URL参数作为一个字符串,然后将标题位置切换到正确的'id'基页面。这只需要一个或两个mod_rewrite规则将URL参数传递给page_handler文件。 – Chris 2011-04-14 12:22:28

+0

运行我的服务器的人说他正在运行WindowsIIS ...即时猜测mod重写不起作用?必须有一个等效的 – Adam 2011-04-14 13:30:13

0

您需要检查所请求的内容不存在,否则您将面临各种麻烦!试试这个:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /$1.php 

至于执行你问的第二件事情,你显然需要在你的PHP代码查找功能让你以后项目的ID。确保你实际上没有第一个/communities目录。

有大量的帮助文档:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html