URL 重写 web.config 在域和页面之间添加假文件夹
URL Rewrite web.config add fake folder between domain and pages
只是一个简单的问题。
我有一个域 website.com,此页面有以国家代码命名的特定页面。
- website.com/英国
- website.com/fr
- website.com/我们
- ...
我在我的 web.config 文件上创建了以下规则 URl 重写:
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url= "^([^/]+)/?$"/>
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="ContactUs.php?lang={R:1}" />
</rule>
页面在 PHP 中生成,名为 lang 的变量用于显示所选页面并存在于 URL。
我想在我的域和页面之间添加 "contact/"。
- website.com/联系人/英国
- website.com/接触/fr
- ...
我有以下规则:
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="contact([^/]+)/?$"/>
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="ContactUs.php?lang={R:1}"/>
</rule>
任何人都可以向我解释我不明白的地方,
谢谢
你的正则表达式有点错误。
^contact\/([a-z]+)\/?$
假设您所有的国家/地区代码都是字母,那应该可以满足您的需要。
您要先将 website.com/uk 重定向到 website.com/contact/uk 并将 website.com/contact/uk 重写为 ContactUs.php?lang=uk?
如果你想这样做,你可以使用下面的 URL 重写规则:
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="www.sample2.com" />
<add input="{REQUEST_URI}" pattern="^/[a-zA-Z]+$" />
</conditions>
<action type="Redirect" url="http://{HTTP_HOST}/contact{C:0}" />
</rule>
<rule name="RewriteUserFriendlyURL2" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="/contact/([a-z]+)" />
</conditions>
<action type="Rewrite" url="ContactUs.php?lang={C:1}" />
</rule>
只是一个简单的问题。 我有一个域 website.com,此页面有以国家代码命名的特定页面。
- website.com/英国
- website.com/fr
- website.com/我们
- ...
我在我的 web.config 文件上创建了以下规则 URl 重写:
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url= "^([^/]+)/?$"/>
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="ContactUs.php?lang={R:1}" />
</rule>
页面在 PHP 中生成,名为 lang 的变量用于显示所选页面并存在于 URL。
我想在我的域和页面之间添加 "contact/"。
- website.com/联系人/英国
- website.com/接触/fr
- ...
我有以下规则:
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="contact([^/]+)/?$"/>
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="ContactUs.php?lang={R:1}"/>
</rule>
任何人都可以向我解释我不明白的地方, 谢谢
你的正则表达式有点错误。
^contact\/([a-z]+)\/?$
假设您所有的国家/地区代码都是字母,那应该可以满足您的需要。
您要先将 website.com/uk 重定向到 website.com/contact/uk 并将 website.com/contact/uk 重写为 ContactUs.php?lang=uk?
如果你想这样做,你可以使用下面的 URL 重写规则:
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="www.sample2.com" />
<add input="{REQUEST_URI}" pattern="^/[a-zA-Z]+$" />
</conditions>
<action type="Redirect" url="http://{HTTP_HOST}/contact{C:0}" />
</rule>
<rule name="RewriteUserFriendlyURL2" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="/contact/([a-z]+)" />
</conditions>
<action type="Rewrite" url="ContactUs.php?lang={C:1}" />
</rule>