簡體   English   中英

將web.config重寫規則轉換為htaccess重寫規則(所有沒有擴展名的文件都被處理為.cfm)

[英]convert web.config rewrite rule to htaccess rewrite rule (All files without an extension to be processed as .cfm)

我正在將一個站點從IIS 7移動到Apache 2.4並具有以下web.config重寫規則我無法轉換為.htaccess。 該規則基本上允許干凈(seo友好)URL通過重寫所有文件而沒有擴展名為.cfm的擴展名(例如www.mydomain / bag在服務器上重寫為www.mydomain.com/bag.cfm。網絡中的工作規則.config如下所示

<rule name="Rewrite all non extension requests to .cfm" stopProcessing="true">
      <match url="^(.*)$" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
        <add input="{REQUEST_FILENAME}.cfm" matchType="IsFile" ignoreCase="false" />
      </conditions>
      <action type="Rewrite" url="{R:1}.cfm" />
    </rule>

我已經嘗試過我能在這里找到的所有類似帖子,不幸的是,這些帖子都不適合我。 如果重要的話,我在CentOS 7(Apache 2.4)上運行Lucee 5.0。 任何指導將不勝感激。

我真的不知道Tomcat; 我假設您需要Apache,因為Tomcat不適合提供非腳本內容。

您可以將它們設置為使它們具有相同的文檔根目錄,從而具有一致的URL,但是Tomcat在另一個端口上偵聽,而不是在外部打開該端口。 然后您可以代理(隱藏) cfm文件的請求,如下所示:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.cfm -f
RewriteCond %{THE_REQUEST} ^\S++\s++([^?\s]++)(\?\S*)?
RewriteRule ^ http://127.0.0.1:8080%1.cfm%2 [NS,NE,P]
RewriteRule (?<=.cfm)$ http://127.0.0.1:8080/404.cfm [NS,NE,P]

第二個規則是假設直接請求cfm文件不存在的示例。

您將需要啟用相應的代理模塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM