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

Caylean

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

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

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

第二名:添加www。如果网域要求为非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 (.*) http://www.%{HTTP_HOST}/? [L]

#Rewrite for non www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/? [R=301,L]

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

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://%{HTTP_HOST}/? [L]

以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]

结束,甚至没有给出任何规则..因此,错误404站点的URL保持不变http://www.domain.tld/123456789.html

我在哪里走错路了?

阿努巴瓦

http://静默重写时不能使用,否则mod_rewrite会将其转换为外部重定向。有这样的规则:

DirectoryIndex index.php
RewriteEngine On

#Rewrite for non www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://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]

在测试之前,请确保清除浏览器缓存。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Angular 2如果路径不存在,如何重定向到404或其他路径

使用tee命令将输出重定向到不存在的目录中的文件

重定向到不存在的文件目录

Yii2-如果视图文件不存在,则重定向

如果Laravel 5中不存在路由,请重定向到首页

仅在文件不存在时重定向

如果路由在Rails中不存在,则重定向到根页面

如何将输出重定向到文件,如果不存在则不创建文件?

htaccess将url从文件重定向到根目录

如果文件不存在,则重定向到文件并保留网址

如果函数不存在,如何重定向到另一个脚本?

使用php重定向到动态不存在的地址

文件根目录不存在?

Bash重定向并追加到不存在的文件/目录

如果不存在301文件夹重定向,则.htaccess下拉至父目录

如果laravel 4不存在的话,将特定的路由重定向到页面

当某些文件不存在时.htaccess重定向到404页面

对不存在的文件使用“ >>”重定向运算符

如果文件不存在,bash重定向到文件

nginx-如果本地不存在一个媒体文件,则永久重定向到Amazon s3

SAMBA:用户根目录不存在

Contao正在重定向到不存在的开发子目录

在Angular2中,如果路由不存在,如何重定向到首页

从目录重定向到根目录

nginx 重定向到尾随斜杠和 substitude 到 index.php(如果文件和文件夹不存在)

如果目录存在,则使用 htaccess 重定向到目录

将“不存在”的文件夹/子文件夹/文件重定向到域根目录

laravel 如果路由为空或不存在重定向到其他页面

如果虚拟文档根目录不存在,如何设置默认文档根目录?