【问题标题】:Remove dot from url via .htaccess通过 .htaccess 从 url 中删除点
【发布时间】:2014-02-16 23:35:21
【问题描述】:

我有一个具有模式重写的网站。问题是,当重写的 url 中有一个点时,它会导致 404。我从this post 尝试过

RewriteCond %{REQUEST_URI} !=/index.php
RewriteRule ^(.*).(.*)$ /$1$2 [L,R=301]
RewriteRule ^page/cart/([^./]+)/?$ ./index.php?page=cart&$1 [L,PT]
RewriteRule ^page/([^.]+)?/([^.]+)?/([^.]+)?/([^.]+)?/([^.]+)?/?$ ./index.php?page=$1&catId=$2&subId=$3&id=$4&name=$5 [L,PT]    
RewriteRule ^page/([^.]+)?/([^.]+)?/([^.]+)?/([^.]+)?/?$ ./index.php?page=$1&catId=$2&subId=$3&name=$4 [L,PT]
RewriteRule ^page/([^.]+)?/([^.]+)?/([^.]+)?/?$ ./index.php?page=$1&catId=$2&name=$3 [L,PT]
RewriteRule ^page/([^.]+)?/([^.]+)?/?$ ./index.php?page=$1&id=$2 [L,PT]
RewriteRule ^page/([^./]+)/?$ ./index.php?page=$1&name=$2 [L,PT]
RewriteRule ^page/([^./]+)/?$ ./index.php?page=$1 [L,PT]

但它仍然给我 404。我的目标是当我在网址中有点时,永久重定向到没有点的相同网址。

我怎样才能做到这一点?

编辑:

我使用此组合编辑了我的文件以排除所有图像,但似乎第一个条件不适用:

RewriteCond %{REQUEST_URI} !=/(.*)\.(jpg|gif|png|css|js)$ [NC]
RewriteCond %{REQUEST_URI} !=/index.php
RewriteRule ^(.*)\.(.*)$ /$1$2 [L,R=301]
RewriteRule ^page/cart/([^./]+)/?$ ./index.php?page=cart&$1 [L,PT]
RewriteRule ^page/([^.]+)?/([^.]+)?/([^.]+)?/([^.]+)?/([^.]+)?/?$ ./index.php?page=$1&catId=$2&subId=$3&id=$4&name=$5 [L,PT]    
RewriteRule ^page/([^.]+)?/([^.]+)?/([^.]+)?/([^.]+)?/?$ ./index.php?page=$1&catId=$2&subId=$3&name=$4 [L,PT]
RewriteRule ^page/([^.]+)?/([^.]+)?/([^.]+)?/?$ ./index.php?page=$1&catId=$2&name=$3 [L,PT]
RewriteRule ^page/([^.]+)?/([^.]+)?/?$ ./index.php?page=$1&id=$2 [L,PT]
RewriteRule ^page/([^./]+)/?$ ./index.php?page=$1&name=$2 [L,PT]
RewriteRule ^page/([^./]+)/?$ ./index.php?page=$1 [L,PT]

编辑 2: 我发现了我的错误。 第一行应该是RewriteCond %{REQUEST_URI} !\.(jpg|gif|png|css|js)$ [NC] 而不是RewriteCond %{REQUEST_URI} !=(.*)\.(jpg|gif|png|css|js)$ [NC]

谢谢。

【问题讨论】:

  • ^(.*)[.](.*)$替换^(.*).(.*)$

标签: apache .htaccess mod-rewrite


【解决方案1】:

你需要转义.:

RewriteRule ^(.*)\.(.*)$ /$1$2 [L,R=301]

. 字符在正则表达式中保留,表示“任何不是换行符的字符”。

【讨论】:

  • 谢谢。如何从该规则中排除图像和媒体文件?
  • @bksi 在其前面添加:RewriteCond %{REQUEST_URI} !\.(gif|png|jpe?g|)$ [NC] 以及您不想影响的任何其他扩展
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多