0

我正在尝试将我public的文件夹与其中的index.php文件符号链接到httpdocs也放置公用文件夹的文件夹。

当我尝试对公用文件夹进行符号链接时,我收到一条错误消息,提醒我public文件夹名称已被占用。我也尝试过对index.php文件本身进行符号链接,该文件本身有效,但破坏了网站的功能。

这是我在对public文件夹进行符号链接时使用的命令。

ln -s /var/www/vhosts/mysite.co.uk/httpdocs/public /var/www/vhosts/mysite.co.uk/httpdocs

这是我在符号链接index.php文件时使用的命令。

ln -s /var/www/vhosts/mysite.co.uk/httpdocs/public/index.php /var/www/vhosts/mysite.co.uk/httpdocs

tldr:当用户访问我的网站时,我想将index.php公用文件夹中的文件用作index.php文件,而不必使用mysite.co.uk/public/index.php. 该index.php文件必须保留在public文件夹中。

4

3 回答 3

1

如果我理解正确,您想从 访问index.phphttpdocs/public并且该文件夹已经存在(如第一种情况下的错误所示)。您可以将文件链接到该(现有)文件夹:

ln -s /var/www/vhosts/mysite.co.uk/httpdocs/index.php /var/www/vhosts/mysite.co.uk/httpdocs/public/index.php

注意需要指定要链接的文件itlsef

于 2012-04-17T15:22:37.213 回答
1

我已经设法让它工作了!我在文件夹中使用了软符号链接public/index.phphttpdocs文件夹中创建了一个index.php文件httpdocs

ln -s /var/www/vhosts/mysite.co.uk/httpdocs/public/index.php /var/www/vhosts/mysite.co.uk/httpdocs/

然后,我使用以下内容将文件添加到.htaccess文件httpdocs夹中...

Options +FollowSymLinks
<IfModule mod_rewrite.c>
        RewriteEngine on

        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d

        RewriteRule . index.php [L]
</IfModule>

感谢@Attila 支持我并提供帮助!

于 2012-04-18T09:03:59.663 回答
-1

解决方案(如果…/public…/httpdocs.

  • 将您的数据/var/www/vhosts/mysite.co.uk/httpdocs/public/var/www/vhosts/mysite.co.uk/httpdocs
  • 符号链接/var/www/vhosts/mysite.co.uk/httpdocs…/public

命令:ln -s /var/www/vhosts/mysite.co.uk/httpdocs /var/www/vhosts/mysite.co.uk/httpdocs/public

缺点:

  • 无限递归,例如/var/www/vhosts/mysite.co.uk/httpdocs/public/public/public/public/

无法访问symlink现有文件/目录。如果可能的话,你会破坏你的树结构。实际上,您正在尝试将目录链接到其父目录。您的系统应该如何解决被覆盖的路径?

例子:

您有一个文件 /a/b/c ,可以执行以下操作:

ln -s /a/b /a

系统应该如何解决现在无法访问的文件/a/b/c

将您的数据移动到所需的目录中,而不是尝试破坏您的文件树。

可以将数据挂载到现有目录(原始数据在卸载之前将无法访问),但这对您的情况没有帮助。

于 2012-04-17T15:32:19.067 回答