2

我正在尝试剥离

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

4

1 回答 1

0

你倒过来了。由于实际资源位于 at /html/about.html,因此您需要在内部重写为该URI,而不是 from。一旦内部重写到位,您可以从外部将任何直接请求重定向到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]
于 2013-10-16T02:09:53.303 回答