我正在尝试将我的public
文件夹中的index.php
文件符号链接到公共文件夹所在的httpdocs
文件夹。
当我尝试和Symlink公共文件夹时,我收到一条错误提醒我已经采用了public
文件夹名称。我也尝试过Symlinking index.php
文件本身但它破坏了网站的功能。
以下是我在Symlinking public
文件夹时使用的命令。
ln -s /var/www/vhosts/mysite.co.uk/httpdocs/public /var/www/vhosts/mysite.co.uk/httpdocs
这是我在Symlinking 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
文件夹中。
答案 0 :(得分:1)
如果我理解正确,您想要从index.php
访问httpdocs/public
,并且该文件夹已经存在(如第一种情况中的错误通知)。您可以将文件链接到该(exisitng)文件夹:
ln -s /var/www/vhosts/mysite.co.uk/httpdocs/index.php /var/www/vhosts/mysite.co.uk/httpdocs/public/index.php
请注意,您需要指定要链接的文件itlsef
答案 1 :(得分:1)
我设法让它发挥作用!我在public/index.php
文件夹中的httpdocs
上使用了一个软符号链接,以便在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坚持和我一起帮忙!
答案 2 :(得分:-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
?
将数据移动到所需目录,而不是尝试破坏文件树。
可以将数据挂载到现有目录(原始数据在卸载之前无法访问),但这对您的情况没有帮助。