.htaccess 将访问重定向到根目录
我想将对mysite.com/mydir/的访问重定向到mysite.com/mydir/index.html mydir中有一个.htaccess配置文件,但它不能按预期工作:.htaccess 将访问重定向到根目录,.htaccess,redirect,.htaccess,Redirect,我想将对mysite.com/mydir/的访问重定向到mysite.com/mydir/index.html mydir中有一个.htaccess配置文件,但它不能按预期工作: RewriteCond %{REQUEST_URI} ^/ Rewriterule ^(.*)$ index.html [L,R=301] 现在,当我转到mysite.com/mydir/时,我被重定向到: mysite.com/mydir/C:/wamp/www/mysite/index.html 如果改为使用:
RewriteCond %{REQUEST_URI} ^/
Rewriterule ^(.*)$ index.html [L,R=301]
现在,当我转到mysite.com/mydir/时,我被重定向到:
mysite.com/mydir/C:/wamp/www/mysite/index.html
如果改为使用:
Rewriterule ^(.*)$ /index.html [L,R=301]
我被重定向到
mysite.com/index.html
唯一有效的方法是:
Rewriterule ^$ /mydir/index.html [L,R=301]
但是我不想硬编码mydir,因为这个.htaccess可能在另一个目录中使用。这个问题可以通过模块化的方式解决吗?我无法测试这个问题,因为我没有在本地安装apache,但问题是如果您尝试的话,您没有将paren中的组附加到url的开头
Rewriterule ^(.*)$ $1/index.html [L,R=301]
然后它将在URL开头的任何字符前面加上前缀,即mydir/before index.html
RewriteCond %{REQUEST_URI} /$
Rewriterule (.*) http://%{HTTP_HOST}%{REQUEST_URI}index.html [L,R=301]
您可以尝试以下(
.htaccess
存储在mydir
中的文件):
您是否尝试过重写规则^(.*)$$1/index.html[L,R=301]不幸的是,这会重定向到mysite.com/index.html,我也尝试过添加/,例如:/$1/index.html,但随后它重定向到:mysite.com//index.html(2斜杠)对不起,我的意思是将重写规则^(.*)$$1index.html[L,R=301]。我已经在测试过了-这仍然不起作用吗?我得到了到mysite.com/mydir/C:/wamp/www/mysite/index.html的重定向,这很奇怪,可能是wamp配置的问题?Rewriterule^/(.*)/$localhost:8080/$1/index.html[L,R=301](将8080更改为wamp运行的端口)
RewriteEngine on
RewriteBase /mydir/
RewriteCond %{REQUEST_URI} ^/mydir/$ [NC]
RewriteRule ^ index.html [R=301,L]