php如果让/index.php后面所有的链接都返回到首页?伪静态规则问题 10C

http://demo.phpmywind.com/index.php/common/productdetail/id/12.html

这个链接本来应该是不存在的,但是做网站的时候百度偏偏收录了这个链接,怎么让/index.php/common/productdetail/id/12.html这样的链接直接是打开的是首页啊?
/common/productdetail/id/ 都是不存在的目录,只有在index.php/后面加不存在的目录都能打开乱的页面,比如:http://demo.phpmywind.com/index.php/c000/
这个是伪静态规则写的问题吗?
伪静态规则附上:
.htaccess文件如下:

# 将 RewriteEngine 模式打开
RewriteEngine On

# 修改以下语句中的 / 改为您的系统目录地址,如果程序放在根目录中则无需修改
RewriteBase /

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^index.html$ index.php
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^about-([0-9]+)-([0-9]+)\.html$ about.php?cid=$1&page=$2
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^news-([0-9]+)-([0-9]+)\.html$ news.php?cid=$1&page=$2
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^newsshow-([0-9]+)-([0-9]+)-([0-9]+)\.html$ newsshow.php?cid=$1&id=$2&page=$3
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^product-([0-9]+)-([0-9]+)\.html$ product.php?cid=$1&page=$2
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^productshow-([0-9]+)-([0-9]+)-([0-9]+)\.html$ productshow.php?cid=$1&id=$2&page=$3
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^case-([0-9]+)-([0-9]+)\.html$ case.php?cid=$1&page=$2
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^caseshow-([0-9]+)-([0-9]+)-([0-9]+)\.html$ caseshow.php?cid=$1&id=$2&page=$3
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^join-([0-9]+)\.html$ join.php?page=$1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^joinshow-([0-9]+)\.html$ joinshow.php?id=$1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^message-([0-9]+)\.html$ message.php?page=$1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^contact-([0-9]+)-([0-9]+)\.html$ contact.php?cid=$1&page=$2
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^soft-([0-9]+)-([0-9]+)\.html$ soft.php?cid=$1&page=$2
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^softshow-([0-9]+)-([0-9]+)-([0-9]+)\.html$ softshow.php?cid=$1&id=$2&page=$3
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^goods-([0-9]+)-([0-9]+)-([0-9]+)\.html$ goods.php?cid=$1&tid=$2&page=$3
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^goodsshow-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ goodsshow.php?cid=$1&tid=$2&id=$3&page=$4
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^vote-([0-9]+)\.html$ vote.php?id=$1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(\w+)\.html$ $1.php?

1个回答

你的首页链接写的是index.php,导致收录的其他页面的首页出现相对目录,最好在路径前面加个/

qq_35235940
听楼一夜雨 有这个链接,说明你页面上就有相对于这个路径的链接,你的伪静态也没有配置成功吧,一个也不能访问,比如http://demo.phpmywind.com/productshow-6-5-1.html
一年多之前 回复
haikun410
小黑帽子 回复听楼一夜雨: 页面上的href都加了/,/common/productdetail这是一个不存在的目录
一年多之前 回复
qq_35235940
听楼一夜雨 不是,是页面上的href,还有/common/productdetail这个目录你的robots屏蔽了吗
一年多之前 回复
haikun410
小黑帽子 RewriteRule ^index.html$ /index.php 这样吗?但是这样 不能解决问题呢
一年多之前 回复
haikun410
小黑帽子 RewriteRule ^index.html$ /index.php
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐