开发者社区> 问答> 正文

问个和服务器无关的问题啊,关于一条htaccess语句的正则写法!

问题已解决,谢谢大家!


目前我的网站结构是:http://www.kimshen.com/ digital/201408271.htm
其中digital这一层还有其他的,比如http://www.kimshen.com/ web/201410404.htm等好多,
现在我想去掉这个二级目录格式,改为:
http://www.kimshen.com/201410404.htm
http://www.kimshen.com/201408271.htm
的格式,正则应该怎么写?谢谢!就是去掉二级目录的正则写法,然后后面的不变!万分感谢!!
百度知道不好使啊,没人回,来问问万能的阿里云吧!谢谢!


展开
收起
shenliyu 2015-07-08 22:52:28 7033 0
5 条回答
写回答
取消 提交回答
  • Re问个和服务器无关的问题啊,关于一条htaccess语句的正则写法!
    二级目录少的话,用

    RewriteRule ^/(digital|web)/([0-9]+).htm$ /$2.htm [L,R=301];

    精准,不影响自定义其他目录。多的话用

    RewriteRule ^/([A-za-z0-9_\-]+)/([0-9]+).htm$ /$2.htm [L,R=301];
    2015-07-17 10:56:10
    赞同 展开评论 打赏
  • RewriteCond %{QUERY_STRING} ^(.*)$
    RewriteRule ^文件夹名字/(.*)$ 新的路径/$1

    如果匹配上级目录的话

    RewriteCond %{QUERY_STRING} ^(.*)$
    RewriteRule ^web/(.*)$ $1
    2015-07-17 09:05:02
    赞同 展开评论 打赏
  • Re问个和服务器无关的问题啊,关于一条htaccess语句的正则写法!
    正则为:~/(\d+){9}.htm&
    匹配~/ web/&1.htm

    上级目录我不知道你的怎么写,我用的rewrite是这样写

    -------------------------

    Re问个和服务器无关的问题啊,关于一条htaccess语句的正则写法!
    试试直接访问http://www.kimshen.com/201410404.htm可行吗
    2015-07-09 11:04:53
    赞同 展开评论 打赏
  • 回 1楼(牛王) 的帖
    现在用的 Typecho,就是想去掉中间的二级目录,在.htaccess里面用正则设置个301跳转,把目前搜索引擎收录的文章都转向过来。

    -------------------------

    回 3楼(chnxiaoxiao) 的帖子
    你好,能不能完整的给写一下啊,对这块实在不懂!谢谢!

    -------------------------

    问题没解决,别沉啊!

    -------------------------

    大神们,起床了!

    -------------------------

    回 7楼(玩站网) 的帖子
    还是不行啊,亲,我现在已经把代码放到htaccess里了,访问http://www.kimshen.com/web/201410404.htm,仍然不跳转到http://www.kimshen.com/201410404.htm,再帮忙看下?谢谢!

    -------------------------

    回 9楼(chnxiaoxiao) 的帖子
    现在是可以访问的,我就是想访问带二级目录的链接的时候可以跳转到这个不带二级目录的页面上,因为百度收录的都是带二级目录的。

    -------------------------

    目前我所有的htaccess代码如下:


    <IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteBase /

    RewriteCond %{THE_REQUEST} ^(.*)$
    RewriteRule ^web/(.*)$ $1

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]

    # 301跳转到带www的域名
    RewriteCond %{HTTP_HOST} ^kimshen.com [NC]
    RewriteRule ^(.*)$ http://www.kimshen.com/$1 [L,R=301]

    </IfModule>

    就是想去掉二级目录,跳转到不带二级目录的URL上,用的Typecho系统。谢谢!

    -------------------------

    回 12楼(小海龙) 的帖子
    谢谢,搞定了,开始那位兄弟没写 [L,R=301];,摸索了好一段时间。
    2015-07-09 10:49:36
    赞同 展开评论 打赏
  • 是什么程序
    2015-07-08 23:03:57
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS块储存产品全面解析 立即下载