.htaccess配置:为不存在的子文件夹链接返回404并跳转首页
解决方案
直接将你当前的.htaccess内容替换为以下代码即可:
# 针对谷歌爬虫返回404错误 RewriteCond %{HTTP_USER_AGENT} Googlebot [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^[^/]+/.+$ - [R=404,L] # 对真实用户重定向无效多层级链接到根目录index.php RewriteCond %{HTTP_USER_AGENT} !Googlebot [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^[^/]+/.+$ /index.php [R=302,L] # 处理正常单层级页面请求(如 example.com/about) RewriteRule ^([^/.]+)$ /index.php?page=$1 [L,B] # 确保静态资源(CSS/图片等)正常加载 RewriteCond $1 !(\.(png|ico|css)|index\.php)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php? [L]
简单说明:
- 第一组规则:识别谷歌爬虫,遇到
mobile/page这类带斜杠的无效链接时直接返回404,阻止谷歌索引错误页面 - 第二组规则:对普通用户,同样的无效链接会被临时重定向到根目录的
index.php,避免资源加载路径错误的问题 - 保留了你原来的单层级页面处理逻辑,正常页面(如
example.com/about)不受影响 - 最后一组规则确保CSS、图片等静态资源能从根目录正常加载
如果需要让搜索引擎永久记录链接失效,可以把第二组规则里的R=302改成R=301,建议先试用302确认没问题再修改。
内容的提问来源于stack exchange,提问作者Kim Ludvigsen
相关产品推荐
相关产品推荐

