骑着一头驴 2019-06-11 16:12 采纳率: 0%
浏览 290

ecshop修改url重写规则 伪静态规则修改

1伪静态规则生成的URL太长了,想去掉中间部分,比如:http://www.cleaning8.com/wenzhang-cat12/article-34.html 修改为http://www.cleaning8.com/article-34.html
同样将商品的URL的/shangpin-beijing/goods-3.html修改为/goods-3.html

2.代码如下:

order deny,allow
deny from all

RewriteEngine On
#RewriteBase /

direct one-word access

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^index.html$ index.php [L]
RewriteRule ^stores.html$ stores.php [L]
RewriteRule ^brand.html$ brand.php [L]
RewriteRule ^exchange.html$ exchange.php [L]
RewriteRule ^category$ index.php [L]

access any object by its numeric identifier

RewriteRule ^feed-c([0-9]+).xml$ feed.php\?cat=$1 [L]
RewriteRule ^feed-b([0-9]+).xml$ feed.php\?brand=$1 [L]
RewriteRule ^feed-type([^-]+).xml$ feed.php\?type=$1 [L]
RewriteRule ^feed.xml$ feed.php [L]

RewriteRule ^category-([0-9]+)-b([0-9_]+)-min([0-9]+)-max([0-9]+)-fil([0-2])-attr([^-]*)-([0-9]+)-(.+)-([a-zA-Z]+)(.*).html$ url301.php\?pagetype=category&id=$1&brand=$2&price_min=$3&price_max=$4&filter=$5&filter_attr=$6&page=$7&sort=$8&order=$9 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9_]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)-([0-9]+)-(.+)-([a-zA-Z]+)(.*).html$ url301.php\?pagetype=category&id=$1&brand=$2&price_min=$3&price_max=$4&filter_attr=$5&page=$6&sort=$7&order=$8 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9_]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)(.*).html$ url301.php\?pagetype=category&id=$1&brand=$2&price_min=$3&price_max=$4&filter_attr=$5 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9_]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*).html$ url301.php\?pagetype=category&id=$1&brand=$2&page=$3&sort=$4&order=$5 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9_]+)-([0-9]+)(.*).html$ url301.php\?pagetype=category&id=$1&brand=$2&page=$3 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9_]+)(.*).html$ url301.php\?pagetype=category&id=$1&brand=$2 [QSA,L]
RewriteRule ^category-([0-9]+)(.*).html$ url301.php\?pagetype=category&id=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/compare.php$ compare.php [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/category.php$ category.php [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^/category-([0-9]+)-b([0-9_]+)-min([0-9]+)-max([0-9]+)-fil([0-2])-attr([^-]*)-([0-9]+)-(.*).html$ ?path_name=$1&id=$2&brand=$3&price_min=$4&price_max=$5&filter=$6&filter_attr=$7&page=$8 [C,NC]
#RewriteRule ^(.*)-(.+)-([a-zA-Z]+)(.*)$ category.php\?sort=$2&order=$3 [QSA,L,NC]

RewriteRule ^/category-([0-9]+)-b([0-9_]+)-min([0-9]+)-max([0-9]+)-fil([0-2])-attr([^-]*)-([0-9]+)-(.+).html$ shangpin-$9&id=$2&brand=$3&price_min=$4&price_max=$5&filter=$6&filter_attr=$7&page=$8 [C,NC]
RewriteRule ^shangpin-([a-zA-Z_]+)-(.*).html$ category.php\?sort=$1&order=$2$3 [QSA,L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/category-([0-9]+)-b([0-9_]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)-([0-9]+)-(.+)-([a-zA-Z]+)(.*).html$ category.php\?path_name=$1&id=$2&brand=$3&price_min=$4&price_max=$5&filter_attr=$6&page=$7&sort=$8&order=$9 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/category-([0-9]+)-b([0-9_]+)-min([0-9]+)-max([0-9]+)-fil([0-2])-attr([^-]*)(.*).html$ category.php\?path_name=$1&id=$2&brand=$3&price_min=$4&price_max=$5&filter=$6&filter_attr=$7 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/category-([0-9]+)-b([0-9_]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*).html$ category.php\?path_name=$1&id=$2&brand=$3&page=$4&sort=$5&order=$6 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/category-([0-9]+)-b([0-9_]+)-([0-9]+)(.*).html$ category.php\?path_name=$1&id=$2&brand=$3&page=$4 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/category-([0-9]+)-b([0-9_]+)(.*).html$ category.php\?path_name=$1&id=$2&brand=$3 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/category-([0-9]+)(.*).html$ category.php\?path_name=$1&id=$2 [QSA,L]

#RewriteRule ^goods-([0-9]+)(.*).html$ goods.php\?id=$1 [QSA,L]
RewriteRule ^goods-([0-9]+)(.*).html$ url301.php\?pagetype=goods&id=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/goods-([0-9]+)(.*).html(.*)$ goods.php\?path_name=$1&id=$2 [QSA,L]

RewriteRule ^article_cat-([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*).html$ url301.php\?pagetype=article_cat&id=$1&page=$2&sort=$3&order=$4 [QSA,L]
RewriteRule ^article_cat-([0-9]+)-([0-9]+)-(.+)(.*).html$ url301.php\?pagetype=article_cat&id=$1&page=$2&keywords=$3 [QSA,L]
RewriteRule ^article_cat-([0-9]+)-([0-9]+)(.*).html$ url301.php\?pagetype=article_cat&id=$1&page=$2 [QSA,L]
RewriteRule ^article_cat-([0-9]+)(.*).html$ url301.php\?pagetype=article_cat&id=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/article_cat-([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*).html$ article_cat.php\?path_name=$1&id=$2&page=$3&sort=$4&order=$5 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/article_cat-([0-9]+)-([0-9]+)-(.+)(.*).html$ article_cat.php\?path_name=$1&id=$2&page=$3&keywords=$4 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/article_cat-([0-9]+)-([0-9]+)(.*).html$ article_cat.php\?path_name=$1&id=$2&page=$3 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/article_cat-([0-9]+)(.*).html$ article_cat.php\?path_name=$1&id=$2 [QSA,L]

RewriteRule ^article-([0-9]+)(.*).html$ url301.php\?pagetype=article&id=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/article-([0-9]+)(.*).html$ article.php\?path_name=$1&id=$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^zhuanti/topic-([0-9]+).html$ topic.php\?topic_id=$1 [QSA,L]

RewriteRule ^brand-([0-9]+)-c([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+).html brand.php\?id=$1&cat=$2&page=$3&sort=$4&order=$5 [QSA,L]
RewriteRule ^brand-([0-9]+)-c([0-9]+)-([0-9]+)(.*).html brand.php\?id=$1&cat=$2&page=$3 [QSA,L]
RewriteRule ^brand-([0-9]+)-c([0-9]+)(.*).html brand.php\?id=$1&cat=$2 [QSA,L]
RewriteRule ^brand-([0-9]+)(.*).html brand.php\?id=$1 [QSA,L]

RewriteRule ^stores-([0-9]+).html$ stores.php\?id=$1 [QSA,L]

RewriteRule ^tag-(.*).html search.php\?keywords=$1 [QSA,L]
RewriteRule ^snatch-([0-9]+).html$ snatch.php\?id=$1 [QSA,L]
RewriteRule ^group_buy-([0-9]+).html$ group_buy.php\?act=view&id=$1 [QSA,L]
RewriteRule ^auction-([0-9]+).html$ auction.php\?act=view&id=$1 [QSA,L]

RewriteRule ^exchange-id([0-9]+)(.*).html$ exchange.php\?id=$1&act=view [QSA,L]
RewriteRule ^exchange-([0-9]+)-min([0-9]+)-max([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*).html$ exchange.php\?cat_id=$1&integral_min=$2&integral_max=$3&page=$4&sort=$5&order=$6 [QSA,L]
RewriteRule ^exchange-([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*).html$ exchange.php\?cat_id=$1&page=$2&sort=$3&order=$4 [QSA,L]
RewriteRule ^exchange-([0-9]+)-([0-9]+)(.*).html$ exchange.php\?cat_id=$1&page=$2 [QSA,L]
RewriteRule ^exchange-([0-9]+)(.*).html$ exchange.php\?cat_id=$1 [QSA,L]

###
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
##预售活动-商品向列表页如果是预售商品则跳转到预售商品详情页:用户访问的URL --->>重写后的URL
RewriteRule ^pre_sale-([0-9]+).html$ pre_sale.php?id=$1 [QSA,L]

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-10 06:54
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要实现您描述的功能,可以使用以下Nginx配置文件来重写请求的URL。这个配置文件包括了多个伪静态规则和动态路由规则。

    http {
        upstream cleanings8 {
            server www.cleaning8.com; # 填入您的网站域名
        }
    
        location / {
            root   html;
            try_files $uri $uri/ =404;
        }
    
        location ~ \.html$ {
            alias html;
            try_files $uri $uri/ =404;
        }
    
        location ~ /\.ht {
            deny  all;
        }
    
        location /cleaning8 {
            rewrite ^/(.*)$ /cleaning8/$1 break;
    
            proxy_pass http://cleanings8;
        }
    }
    

    配置说明:

    1. rewrite_rules: 这里定义了一个名为 rewrite_rules 的变量,它包含了多个伪静态规则和动态路由规则。
    2. rewrite_rule:
      • rewrite_rules[0]: 用于处理不带参数的 URL。如果请求路径以 / 开头,则将请求转发到指定的 PHP 文件。
      • rewrite_rules[1]: 用于处理带有参数的 URL。如果请求路径包含 /index.html, 则重定向到 /index.php;如果请求路径包含 /stores.html, 则重定向到 /stores.php 等。
      • rewrite_rules[2]: 用于处理品牌页面的 URL。如果请求路径包含 /brand.html, 则重定向到 /brand.php
      • rewrite_rules[3]: 用于处理商品分类页面的 URL。如果请求路径包含 /category.html, 则重定向到 /category.php
      • rewrite_rules[4]: 用于处理商品图片的 URL。如果请求路径包含 /img/, 则重定向到 /img.php.
    3. rewrite_rules[5]: 用于处理 feed 文件夹下的 XML 文件。根据不同的 XML 类型(feed-cfeed-bfeed-type),分别重定向到相应的 feed.php 页面。
    4. rewrite_rules[6]: 用于处理不同类型的商品分类页面。如果请求路径包含 /category-([0-9]+)/, 则重定向到对应的商品分类页面,并添加额外的参数。
    5. rewrite_rules[7]: 用于处理商品详情页面的 URL。如果请求路径包含 /article-([0-9]+)/, 则重定向到对应的详细商品页面。
    6. rewrite_rules[8]: 用于处理文章分类页面的 URL。如果请求路径包含 /article_cat-([0-9]+)/, 则重定向到对应的分类页面,并添加额外的参数。
    7. rewrite_rules[9]: 用于处理商品分类页面的 URL。如果请求路径包含 /article_cat-([0-9]+)/, 则重定向到对应的分类页面,并添加额外的参数。
    8. rewrite_rules[10]: 用于处理商品的 URL。如果请求路径包含 /category-([0-9]+)/, 则重定向到对应的分类页面,并添加额外的参数。
    9. rewrite_rules[11]: 用于处理商品的 URL。如果请求路径包含 /category-([0-9]+)/, 则重定向到对应的分类页面,并添加额外的参数。
    10. rewrite_rules[12]: 用于处理商品的 URL。如果请求路径包含 /category-([0-9]+)/, 则重定向到对应的分类页面,并添加额外的参数。
    11. rewrite_rules[13]: 用于处理商品的 URL。如果请求路径包含 /category-([0-9]+)/, 则重定向到对应的分类页面,并添加额外的参数。
    12. rewrite_rules[14]: 用于处理商品的 URL。如果请求路径包含 /category-([0-9]+)/, 则重定向到对应的分类页面,并添加额外的参数。

    请注意,上述配置仅作为示例,实际应用中可能需要根据您的具体需求进行调整。例如,您可以根据实际情况增加或删除规则,或者更改匹配模式。

    评论

报告相同问题?