经过大量的测试并仔细研究了stackoverflow,我无法弄清楚如何实现这一目标。
我在子文件夹(www.domain.com/subfolder/
)中提供了一个网站。我有.htaccess位于该子文件夹(www.domain.com/subfolder/.htaccess
),我有3个htmls(index.html, example1.html, example2.html
)
我希望当您访问www.domain.com/subfolder/example2.html
时,它会打开www.domain.com/subfolder/example2/
并使用干净的网址并使用css,js和图像路径。
我不知道如何将此子文件夹设置为root并继续使用干净的网址。
这是真实的.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.html
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
我尝试过几件事,但似乎没什么用。
提前致谢。 迭
答案 0 :(得分:1)
在/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 ^(.+?)/?$ $1.html [L]
对于css,js,image
等,请确保在HTML中使用绝对路径,否则您可以在页面的<head>
部分的<base href="/" />
部分下方添加此内容:{{1}}以便每个相对网址是从该基本网址解析的,而不是从当前网页的网址解析。