我正在使用htaccess重写我的url,以便我可以有很好的干净的url。 但是,相同的htaccess文件在我的本地服务器和远程服务器上做了不同的事情:
在我的本地服务器上,url是http://localhost/example/ ,在我的远程服务器上,url是http://example.com/ 。
对于我的本地服务器,我可以使用以下htaccessredirect规则:
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
但是,当我在远程服务器上使用它时,出现内部服务器错误。 相反,我必须使用这个:(注意斜杠)
RewriteRule ^(.*)$ /index.php?page=$1 [L,QSA]
不幸的是,这在我的本地服务器上不起作用:这个重写规则在本地服务器上请求http://localhost/index.php而不是http://localhost/example/index.php 。
如何在远程服务器和本地服务器上进行这项工作?
最好的解决scheme是在开发服务器上更改DocumentRoot ,以便URI(因此所有的重写)与生产服务器相同。
如果您的开发服务器上有多个站点正在保存在单独的文件夹中,则可以改为使用单独的子站点。
该指令应该在任何目录上下文中工作得很好。
当它以500 Internal Server Error响应时,请提供其日志中的500 Internal Server Error以及该系统中的其他相关configuration。