Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改HTML链接上的根文件夹_Html_Apache_.htaccess - Fatal编程技术网

更改HTML链接上的根文件夹

更改HTML链接上的根文件夹,html,apache,.htaccess,Html,Apache,.htaccess,我有一堆带有链接标签的HTML文件,如下所示: [...] <a href="/file1.php">Link 1</a> <a href="/file2.php">Link 2</a> <a href="/file3.php">Link 3</a> [...] RewriteCond %{REQUEST_FILENAME} \.php$ RewriteRule ^(.*)$ /folder/$1 [L,QSA] Rew

我有一堆带有链接标签的HTML文件,如下所示:

[...]
<a href="/file1.php">Link 1</a>
<a href="/file2.php">Link 2</a>
<a href="/file3.php">Link 3</a>
[...]
RewriteCond %{REQUEST_FILENAME} \.php$
RewriteRule ^(.*)$ /folder/$1 [L,QSA]
RewriteBase /folder/
RewriteRule ^(.*)\.php$ $1.php [L,QSA]
[…]
[...]
网站位于服务器上的文件夹中,例如
http://www.website.com/folder/
,但带有
/
的链接指向根,例如
http://www.website.com/
,但文件
file1.php
file2.php
file3.php
等都在文件夹中


我如何才能使链接在不更改HTML内容的情况下,就好像根文件夹就是它们所在的文件夹一样工作?

您可以尝试这样的内部重定向:

[...]
<a href="/file1.php">Link 1</a>
<a href="/file2.php">Link 2</a>
<a href="/file3.php">Link 3</a>
[...]
RewriteCond %{REQUEST_FILENAME} \.php$
RewriteRule ^(.*)$ /folder/$1 [L,QSA]
RewriteBase /folder/
RewriteRule ^(.*)\.php$ $1.php [L,QSA]
条件是只将PHP文件重定向到文件夹,如果这会给您一个循环,您可以使用更具体的循环:

RewriteRule ^(.*)\.php$ /folder/$1.php [L,QSA]
使用类似以下内容的
RewriteBase

[...]
<a href="/file1.php">Link 1</a>
<a href="/file2.php">Link 2</a>
<a href="/file3.php">Link 3</a>
[...]
RewriteCond %{REQUEST_FILENAME} \.php$
RewriteRule ^(.*)$ /folder/$1 [L,QSA]
RewriteBase /folder/
RewriteRule ^(.*)\.php$ $1.php [L,QSA]

嗨,普锐斯,谢谢你的回答,但它不起作用。我忘了提及,但我无法更改根文件夹上的.htaccess。该配置必须在内部的.htaccess文件中进行,而不是在根目录上的.htaccess上进行。@JoãoPaulin如果您希望在根文件夹上执行规则,则必须在根文件夹htaccess上应用该规则,因为它将遵循hierarchy.Prix,是否可以在内部放置.htaccess文件以使文件看起来像根目录一样,让它的链接在内部搜索而不是@JoãoPaulin不,我不这么认为,你可以尝试使用
RewriteBase/folder/
,但是这不起作用,因为URL是在你的文件上硬编码的,默认情况下会将你的域附加到以
/
开头的URL上