![](/img/trans.png)
[英]Apache .htaccess rewrite rule to IIS FastCGI web.config rule problems
[英]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.