子文件夹/子目录和干净的URL

时间:2015-12-10 13:07:29

标签: .htaccess subdirectory clean-urls

经过大量的测试并仔细研究了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]

我尝试过几件事,但似乎没什么用。

提前致谢。 迭

1 个答案:

答案 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}}以便每个相对网址是从该基本网址解析的,而不是从当前网页的网址解析。