我得到了可怕的"没有输入文件指定"使用漂亮的永久链接时出错,但我认为这是一个WordPress问题,而不是重写模块问题。我在IIS7和WP 3.4.2上。非常固执的是:
http://www.mydomain.com/blog/2012/09/20/post-name/
和这是正确地重写:
http://www.mydomain.com/blog/index.php/2012/09/20/post-name/
我认为重写是正确的,因为当我手动转到后一个url时,我仍然会收到错误。所以我认为问题在于WordPress。但是,为了完整起见,这里是重写规则:
<rule name="Main Rule" stopProcessing="true"> <match url="^blog/(.+)" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="/blog/index.php/{R:1}" /> </rule>
关于这个问题有很多关于SO的帖子,但它们似乎都是重写问题,所以我不会认为这是任何问题的重复我所拥有的那个。
答案 0 :(得分:0)
嗯,这是一个重写问题。在上面的模式中,我没有考虑该网站位于共享主机上,/blog
实际上指向\subfolder\blog
。按如下方式更改它固定它:
<rule name="Main Rule" stopProcessing="true">
<match url="^blog/(.+)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/subfolder/blog/index.php/{R:1}" />
</rule>
这不太理想,因为我不得不硬编码子文件夹的名称,但是现在,我会接受它。