Mod rewrite mod_rewrite:绝对路径使参数在地址行上可见

Mod rewrite mod_rewrite:绝对路径使参数在地址行上可见,mod-rewrite,Mod Rewrite,当我在.htaccess中设置 RewriteEngine On RewriteRule mynews/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([_0-9a-zA-Z]+)/$ http://mysite/mynews.php?a=$1&b=$3&c=$2 最终的url地址在浏览器栏中可见。有没有办法阻止它,让mod_rewrite显示“beauty”目录,如?删除此项: http://mysite/mynews.. ^^^

当我在.htaccess中设置

RewriteEngine On
RewriteRule mynews/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([_0-9a-zA-Z]+)/$ http://mysite/mynews.php?a=$1&b=$3&c=$2 
最终的url地址在浏览器栏中可见。有没有办法阻止它,让mod_rewrite显示“beauty”目录,如?

删除此项:

http://mysite/mynews..
^^^^^^^^^^^^^^
所以

当然,您可以将绝对文件路径(而不是url路径)设置为:


彼得,谢谢你的回答。我避免使用相对url路径,因为在这种情况下,mynews.php中包含的所有脚本以及php函数include()和require()都被遗漏了,因为php页面“认为”它被放在了几个文件夹中,由于使用mod_rewrite,这些文件夹实际上是“虚拟的”。我还遇到了HTML中图像和链接的路径问题,这是通过使用标签来解决的。但显然,它不适用于PHP函数。不,你说的是错的。如果您的服务器配置正确,那么在htaccess for PHP script.ok中使用相对路径还是绝对路径并不重要。我发现,如果不使用include('myscript.php'),而是根据“虚拟”文件夹的数量使用include('../myscript.php')或include('../myscript.php'),这个问题可能会得到解决。
RewriteEngine On
RewriteRule mynews/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([_0-9a-zA-Z]+)/$ mynews.php?a=$1&b=$3&c=$2
/var/www/blog/mynews.php?a=$1&b=$3&c=$2