【问题标题】:Change root folder on HTML links更改 HTML 链接上的根文件夹
【发布时间】:2013-07-23 14:02:42
【问题描述】:

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

[...]
<a href="/file1.php">Link 1</a>
<a href="/file2.php">Link 2</a>
<a href="/file3.php">Link 3</a>
[...]

网站位于服务器上的文件夹中,例如http://www.website.com/folder/,但以 / 开头的链接指向根,例如http://www.website.com/,但文件file1.phpfile2.phpfile3.php等在文件夹内。

如何在不更改 HTML 内容的情况下使链接的行为就像根文件夹是它们所在的文件夹一样?

【问题讨论】:

    标签: html apache .htaccess


    【解决方案1】:

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

    RewriteCond %{REQUEST_FILENAME} \.php$
    RewriteRule ^(.*)$ /folder/$1 [L,QSA]
    

    条件是仅将 PHP 文件重定向到该文件夹​​,如果这给您一个循环,您可以使用更具体的循环:

    RewriteRule ^(.*)\.php$ /folder/$1.php [L,QSA]
    

    RewriteBase 是这样的:

    RewriteBase /folder/
    RewriteRule ^(.*)\.php$ $1.php [L,QSA]
    

    【讨论】:

    • 嗨 Prix,感谢您的回答,但它没有用。我忘了提及,但我无法更改根文件夹上的 .htaccess。该配置必须在 website.com/folder 内的 .htaccess 文件中完成,而不是在根 website.com 上的 .htaccess 中完成。
    • @JoãoPaulin 如果您想在根文件夹上执行规则,那么它必须应用于根文件夹 htaccess,因为它将遵循层次结构。
    • Prix,是否可以将 .htaccess 文件放入 website.com/folder 以使文件看到 website.com/folder 就好像它是 root 一样,使其链接在 website.com/folder 内搜索而不是website.com?
    • @JoãoPaulin 不,我不这么认为,您可以尝试使用 RewriteBase /folder/ 但这不起作用,因为 URL 是硬编码在您的文件中的,默认情况下会将您的域附加到以 @ 开头的 URL 987654332@
    猜你喜欢
    • 1970-01-01
    • 2011-07-15
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    相关资源
    最近更新 更多