我在web.config
中有以下IIS网址重写规则:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="some-name" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
它们适用于任何子文件夹,如下所示:
web.config和index.php存储在folder1/test
中:
请求/folder1/test/some/virtual/12-url
已发送至folder1/test/index.php
。
web.config和index.php存储在folder2/wherever/this
中:
请求/folder2/wherever/this/virtual/12-url
已发送至folder2/wherever/this/index.php
。
为了切换到Apache,如何重写这些规则 每当子文件夹URL更改时,都无需更新.htaccess? (项目可以托管在任何子文件夹上,不需要放在文档根目录中。)
答案 0 :(得分:1)
试试这个
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d # not a dir
RewriteCond %{REQUEST_FILENAME} !-f # not a file
RewriteRule ^ index.php [L]