1

我需要一些帮助来编写一个 .htaccess 规则:

  1. 从文件名中删除了 .php 扩展名
  2. 重写变量。

因此,像这样的 urlwww.example.com/contact-us/456/789会被服务器解释为www.example.com/contact-us.php?a=123&b=456&c=789

以下 IIS web.config 规则很有效(使用重写映射):

<rule name="Dynamic Rewriting" stopProcessing="true">
    <match url="^([^/]+)(?:/?([^/]+)?)(?:/?([^/]+)?)(?:/?([^/]+)?)/?$" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{DynamicRewriting:{R:1}}" pattern="(.+)" />
    </conditions>
    <action type="Rewrite" url="/{C:1}.php?page={C:1}&amp;a={R:2}&amp;b={R:3}&amp;c={R:4}" />
</rule>

<rewriteMap name="DynamicRewriting">
    <add key="contact-us" value="contact-us" />
</rewriteMap>

谁能告诉我我需要的 .htaccess 规则?

4

1 回答 1

1

尝试:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/([^/]+)
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^/?([^/]+)(?:/?([^/]+)?)(?:/?([^/]+)?)(?:/?([^/]+)?)/?$ /$1.php?page=$1&a=$2&b=$3&c=$4 [L,QSA]
于 2013-04-17T11:18:52.863 回答