更改HTML链接上的根文件夹
我有一堆带有链接标签的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
[...]
<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上