.htaccess和mod_rewrite的帮助

使用mod_rewrite,我怎么能打开这个模式的url:

http://example.com/index.php?id=14

进入这种模式:

http://example.com/14/

因为我认为你宁愿重写请求到/<ID>/内部到/index.php?id=<ID> ,试试这个:

 RewriteRule ^(\d+)/$ index.php?id=$1 

但是,如果您真的想将请求重定向到/index.php?id=<ID>内部到/<ID>/

 RewriteCond %{QUERY_STRING} (^|&)id=(\d+)(&|$) RewriteRule ^index\.php$ /%2/? [R] 

如果你想保留其他的URL参数:

 RewriteCond %{QUERY_STRING} ^(([^&]*&+)*)id=(\d+)(&+(.*))?$ RewriteRule ^index\.php$ /%3/?%2%5 [R] 
 RewriteCond %{QUERY_STRING} id=(.+) RewriteRule ^/index.php$ /%1/? [R] 

你的代码是唯一一个最终在我的.htaccess文件中工作,但是我有第二个查询字符串,并不能得到它的工作。 我的钥匙是身份证和名字。 我怎样才能得到

http://example.com/studio_details.php?id=123&name=Studio Wrox伦敦

http://example.com/123/Studio Wrox伦敦
(这里特别是我可能有一个问题,因为数据库名称中有空格 – 可以用 – 解决这个问题,还是使用空格处理它?)

  1. 下面是我在服务提供商的共享托管服务器上的.htaccess文件。 我如何添加更多querystrings到以下?

RewriteCule%{QUERY_STRING} ^(([^&] &+) )id =(\ d +)(&+(。*))$ $ RewriteRule ^ studio_details.php $ /%3 /?%2%5 [R]

  1. 我怎样才能重写我的网站存在的所有.php扩展名为.html? 因为没有重写在mycase中工作。 (仅在点1以上)

  2. 尽管我没有在我的.htaccess文件中的任何代码,我得到我的index.php文件重定向到主机目录,如“vhost \网站\ syildiz \ WWW …”等等是否有任何规则,以确保有索引页是index.php(将被重写为index.html)

  3. 有没有规则检查规则是否在执行之前工作? 像检查文件和查询字符串变量执行,并在显示页面之前结果?

感谢Suls