使用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伦敦
(这里特别是我可能有一个问题,因为数据库名称中有空格 – 可以用 – 解决这个问题,还是使用空格处理它?)
RewriteCule%{QUERY_STRING} ^(([^&] &+) )id =(\ d +)(&+(。*))$ $ RewriteRule ^ studio_details.php $ /%3 /?%2%5 [R]
我怎样才能重写我的网站存在的所有.php扩展名为.html? 因为没有重写在mycase中工作。 (仅在点1以上)
尽管我没有在我的.htaccess文件中的任何代码,我得到我的index.php文件重定向到主机目录,如“vhost \网站\ syildiz \ WWW …”等等是否有任何规则,以确保有索引页是index.php(将被重写为index.html)
有没有规则检查规则是否在执行之前工作? 像检查文件和查询字符串变量执行,并在显示页面之前结果?
感谢Suls