首页 > 解决方案 > 将 IIS htaccess 转换为 Apache htaccess 拆分 URL

问题描述

第一篇文章 - 进行了很好的搜索,但找不到我想要的东西。

我在 IIS 服务器上有一个使用 htaccess 重写规则的 PHP 网站,需要迁移到 linux/Apache

我的 URL 的第一个链接https://www.radiatorwholesalers.com.au/ford_radiators/
然后https://www.radiatorwholesalers.com.au/ford_radiators/falcon/
最后是https://www.radiatorwholesalers.com.au/falcon /ba-4.0l%2002-05%20man/252.htm

这些规则在 IIS 中有效

    RewriteRule ^(.*)/(.*)/(.*)\.htm$ proddetail.php?prod=$3 
    RewriteRule ^(.*)/(.*)/$ catalogue.php?mfname=$1&modelname=$2
    RewriteRule ^(.*)/$ catalogue.php?mfname=$1

我已将其编辑为以下内容以使其开始工作 - 但我没有选择型号名称(猎鹰)

    RewriteRule ^(.*)/(.*)/(.*)\.htm$ proddetail.php?prod=$3
    RewriteRule ^(.*)/(.*)/(.*)/$ /catalogue.php?mfname=$1&modelname=$2
    RewriteRule ^(.*)/$ /catalogue.php?mfname=$1

第二行我必须添加额外的 (.*)/ 来获取 mfname - 不知道为什么?必须添加 / 以拾取正确的路径。在 IIS 下两者都不是必需的。

似乎第二条规则被第三条取代。

我的 htaccess

    Options +Indexes
    Options +FollowSymlinks
    RewriteEngine on

    RewriteRule ^(.*)/(.*)/(.*)/(.*)\.htm$ proddetail.php?prod=$3
    RewriteRule ^(.*)/(.*)/(.*)/$ catalogue.php?mfname=$1&modelname=$2
    RewriteRule ^(.*)/$ catalogue.php?mfname=$1

标签: apache.htaccessiis

解决方案


推荐阅读