Subfolder/Subdirectory 并清理 URL 的

Subfolder/Subdirectory and clean URL's

在进行了大量测试并深入研究 Whosebug 之后,我不知道如何实现这一目标。

我在子文件夹 (www.domain.com/subfolder/) 中提供了一个网站。我的 .htaccess 位于该子文件夹 (www.domain.com/subfolder/.htaccess) 并且我有 3 个 html (index.html, example1.html, example2.html)

我希望当您访问 www.domain.com/subfolder/example2.html 时,它会打开 www.domain.com/subfolder/example2/,并且 urls 和 css、js 和图像路径正常工作。

我不知道如何将此子文件夹设置为根文件夹并继续清理 url 的文件夹。

这是我实际的 .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ .html
RewriteRule ^([^/]+)/([^/]+)/$ //.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ // [R=301,L]

我尝试了几种方法,但似乎没有任何效果。

提前致谢。 迭戈

/subfolder/.htaccess 试试这个:

RewriteEngine On
RewriteBase /subfolder/

# To externally redirect /subfolder/file.html to /subfolder/file/
RewriteCond %{THE_REQUEST} \s/+(.+?)\.html[\s?] [NC]
RewriteRule ^ /%1/ [R=302,L]

## To internally redirect /subfolder/file/ to /subfolder/file.html
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+?)/?$ .html [L]

对于 css,js,image 等,请确保在 HTML 中使用绝对路径,否则您可以将其添加到页面 HTML 的 <head> 部分下方:<base href="/" /> 这样每个 亲戚 URL 都是从该基础 URL 解析的,而不是从当前页面的 URL.