如果文件不存在,则重定向到根目录

编程入门 行业动态 更新时间:2024-10-19 11:35:45
本文介绍了如果文件不存在,则重定向到根目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个超级基本的重定向请求,我想完成,但是每次尝试都将其弄乱,到目前为止,最好的结果是双www.www重定向( http://www.www.domain.tld/ )

I have a super basic redirect request I like to get done, but i mess it up every time i give it a try, the best so far results in a double www.www redirect (www.www.domain.tld/)

我的。 htaccess有两个规则,我想检查并完成。

My .htaccess has 'two' rules i like to get checked and done.

第一:将所有不存在的文件重定向到根文件夹

1st: Redirect all non existent files to the root folder

2nd:添加www。如果域请求为非www

2nd: Add www. if domain requested as non-www

# If requested resource exists as a file or directory go to it RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule (.*) - [L] # Else rewrite requests for non-existent resources to /index.php RewriteRule (.*) www.%{HTTP_HOST}/? [L] #Rewrite for non www RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ www.%{HTTP_HOST}/? [R=301,L]

我更改了第一个规则集,但从未解决

I have changed the first Ruleset, but never worked out

否。 1

# If requested resource exists as a file or directory go to it RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule (.*) - [L] # Else rewrite requests for non-existent resources to /index.php RewriteRule (.*) %{HTTP_HOST}/? [L]

以redirectloop结尾

Ended with a redirectloop

没有2

# If requested resource exists as a file or directory go to it RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule (.*) - [L] # Else rewrite requests for non-existent resources to /index.php RewriteRule (.*) /? [L]

以没有给出任何规则的方式结束。.因此,URL不变的错误404站点 http://www.domain.tld/123456789.html

Ended like no rule was even given.. so an error 404 site with the unchanged URL www.domain.tld/123456789.html

我在哪里走错路了?

推荐答案

您不能使用 http :// 进行静默重写,否则 mod_rewrite 会将其转换为外部重定向。规则如下:

You cannot use while doing silent rewrite otherwise mod_rewrite will convert that to an external redirect. Have your rules like this:

DirectoryIndex index.php RewriteEngine On #Rewrite for non www RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # If requested resource is not a file or directory then redirect to / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . / [L,R=302]

请务必在测试之前清除浏览器缓存。

Make sure to clear your browser cache before testing this.

更多推荐

如果文件不存在,则重定向到根目录

本文发布于:2023-11-01 02:08:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1547938.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不存在   根目录   重定向   文件

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!