我有以下结构:
/public_html
/FILES AND FOLDERS I MUST NOT TOUCH IN ANY WAY (not mine)
/mysitefolder/ (this is mine)
/images
/js
/index.php
/someotherpage.php
现在, mysitefolder 中页面中的所有链接都是这样的:
<a href="/someotherpage.php">A link</a>
<img src="/images/myimage.png">
<script type="text/javascript" src="/js/somescript.js"></script>
也就是说,所有链接都是使用以“/”开头的相对URL构建的(即假设所有内容都在服务器的公共根目录中)。
我需要的是,愚弄(或“重写”,如果你愿意)这些链接从“/ mysitefolder /”而不是“/”加载资源。例如,所需的解决方案将上述链接转换为:
<a href="/mysitefolder/someotherpage.php">A link</a>
<img src="/mysitefolder/images/myimage.png">
<script type="text/javascript" src="/mysitefolder/js/somescript.js"></script>
如何使用.htaccess文件来完成此操作?我一直在读许多帖子,但没有什么对我有用,老实说我不太明白.htaccess。
答案 0 :(得分:0)
阅读你的问题,我认为你不想使用静态URL,只是为了让URL工作。如您所说,当前URL假设系统在网站的根文件夹中启动。我不建议你使用htaccess,因为它不适用于这种情况。您应该将html / php文件中的URL编辑为
<a href="/mysitefolder/someotherpage.php">A link</a>
<img src="/mysitefolder/images/myimage.png">
<script type="text/javascript" src="/mysitefolder/js/somescript.js"></script>
(如果您想从根链接)或
<a href="./someotherpage.php">A link</a>
<img src="./images/myimage.png">
<script type="text/javascript" src="./js/somescript.js"></script>
如果你想要一个真正的相对链接,它使用当前文件夹作为起始点。
如果未使用根目录中的文件,则可以使用htaccess文件将所有内容转发到mysitefolder。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !mysitefolder [NC]
RewriteRule ^(.*)$ /mysitefolder/$1 [L]
(未经测试)