我想剥离
http://host.name/html/about.html
到
http://host.name/about.html
但我在.htaccess文件中遇到以下问题时遇到404错误:
Options +FollowSymLinks
RewriteEngine on
rewritebase /
RewriteRule ^html/(.*) $1 [R,L]
http://htaccess.madewithlove.be/说它有效,我觉得它有效,但显然我错过了一些东西。
任何人都可以纠正我吗?
编辑:
当我尝试访问/ html /
时,它也会反弹到root答案 0 :(得分:0)
你倒退了。由于实际资源位于/html/about.html
,因此您需要在内部将重写为该URI,而不是来自。内部重写到位后,您可以从外部将任何直接请求重定向到html
目录。如下所示:
Options +FollowSymLinks -Multiviews
RewriteEngine On
RewriteCond %{THE_REQUEST} \ /html
RewriteRule ^html/(.*)$ /$1 [L,R=301]
RewriteCond %{DOCUMENT_ROOT}/html%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/html%{REQUEST_URI} -d [OR]
RewriteCond %{DOCUMENT_ROOT}/html%{REQUEST_URI} -s
RewriteRule ^(.*)$ /html/$1 [L]
或者您可以将最后一组条件/规则替换为:
RewriteCond %{REQUEST_URI} !^/html/
RewriteRule ^(.*)$ /html/$1 [L]