2017-04-23 120 views
0

我有一個網站使用asp.net和wordpress。 wordpress組件位於名爲wordpress的子目錄中。它使用永久鏈接。使用asp.net rewrite和wordpress永久鏈接

我也有一個asp.net網站,它使用站點根目錄作爲頂級目錄。

該asp.net網站使用一些重寫規則,所以我可以訪問沒有.aspx擴展名的.aspx頁面。它有效地將.aspx添加到頁面。這是web.config文件中的重寫規則

<rewrite> 
    <rules> 
    <rule name="san aspx"> 
     <!--Removes the .aspx extension for all pages.--> 
     <match url="(.*)" /> 
     <conditions logicalGrouping="MatchAll"> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{REQUEST_FILENAME}" pattern="/*.png" negate="true" /> 
     <add input="{REQUEST_FILENAME}" pattern="/*.php" negate="true" /> 
     <add input="{REQUEST_FILENAME}" pattern="/wordpress/*.php" negate="true" /> 
     <add input="{REQUEST_FILENAME}" pattern="/webservice/*.asmx" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="{R:1}.aspx" /> 
    </rule> 
    </rules> 
</rewrite> 

這對asp.net頁面正常工作。

但是它也增加了.aspx擴展名到wordpress頁面。所以,如果我有一個頁面(顯示爲一個固定鏈接),如

/recurring-billing/ 

它查找一個名爲

/recurring-billing/.aspx 

如果我關掉永久鏈接頁面上,WordPress網頁顯示正確,因爲asp.net重寫規則

<add input="{REQUEST_FILENAME}" pattern="/*.php" negate="true" /> 

正確識別.php頁面並忽略重寫。

問題:在asp.net重寫規則中需要什麼額外條件,所以它不會將.aspx添加到wordpress永久鏈接。

回答

0

PHP和.NET是Arch剋星。無論你想要完成什麼,這都是禁忌。

+0

我不同意。除了永久鏈接以外,一切都可以使用。爲什麼你會說這是禁忌?這聽起來是失敗主義者。 –

0

找到解決方案。將asp.net應用程序移動到一個子目錄,並將wordpress網站移回到根目錄。現在都在工作。