Sco*_*ott 12 .htaccess redirect
我需要一个规则,只要"没有"斜杠,就会添加.html扩展名.
新客户最近更改了电子商务脚本,新版本以不同方式处理SEO,并更改了所有16,000多个产品链接.在重新编制索引之前没有捕获到这一点,因此我们需要将旧版本重定向到新版本.
以前所有产品都有像domain.com/category/productname这样的链接,但现在是domain.com/category/productname.html
类别链接没有变化,所有都像这个domain.com/category/(带尾随斜杠)
Pau*_*ves 16
来自@ david-wolever的答案将.html(或根)中未结尾的所有内容重定向到具有添加的.html扩展名的相同URL,这意味着它将.html扩展名附加到CSS和JavaScripts文件之类的内容,例如它将将/style.css重定向到/style.css.html,这可能不是你想要的.之后还有空格!可能导致@greggles 500s的角色
这会重定向不以点结尾的网址,后跟3或4个字母数字字符:
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{3,4}
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1.html
Run Code Online (Sandbox Code Playgroud)
或者为了更精细的谷物控制,将你不想要的扩展名列入白名单.html附加到例如
RewriteCond %{REQUEST_URI} !\.(html|css|js|less|jpg|png|gif)$
Run Code Online (Sandbox Code Playgroud)
此选项类似于@ remco,但不需要使用[R](发送回浏览器的"外部"重定向).我还在第一个条件中添加了一个丢失\:
Options FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !^.*\.html$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ %{REQUEST_FILENAME}.html
Run Code Online (Sandbox Code Playgroud)
重写引擎开启
RewriteCond %{REQUEST_URI}!\.html$
RewriteCond %{REQUEST_URI}!/$
重写规则 ^(.*)$ $1.html
你可能想在其中添加一个[R],或者其他东西。请参阅文档:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule(搜索“redirect | R”)。
| 归档时间: |
|
| 查看次数: |
25978 次 |
| 最近记录: |