2013-03-01 50 views
0

我沒有任何訪問控制面板工具的權限,不知道如何正確執行此操作。我創建了以下重寫規則來爲我節省大量的工作 - 但是在實現服務器的Microsoft時,這並沒有得到太好的結果。如何在.htaccess和web.config之間進行翻譯?

RewriteRule ^scotsman-photo-products-([A-Za-z0-9-_]+)/?$ scotsman-photo-products.php?pg=$1 
RewriteRule ^make-scotsman-photo-([A-Za-z0-9-_]+)/?$ make-scotsman-photo.php?pg=$1 

似乎配置文件所做的任何更改創建一個500錯誤 - 是否有可能在服務器將不允許通過,除非「官方」途徑的任何變化?

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <defaultDocument> 
      <files> 
       <add value="index.php" /> 
      </files> 
     </defaultDocument> 
    </system.webServer> 
</configuration> 

是當前內容。

+0

我在下面看到您的評論,這是一個專用的服務器,或者您使用的是虛擬主機優惠嗎? – cheesemacfly 2013-03-06 21:51:19

+0

我相信下面他說他的公司正在從1&1租用服務器。 – Leeish 2013-03-07 03:00:07

+0

這是一款專用服務器,具有1and1個性化打印產品的運行軟件。我一次幫忙整理網站內容(這是一家朋友公司),但他努力讓優秀的員工保持最新狀態,所以從未盈利。包括重寫規則是我幫助他使用SEO的一種方式,並且使員工更容易添加內容。我基本上已經從一個文本文件和一些PHP雜耍中的五個詞創建了網站。坦率地說,我現在有點疲憊,只是敬畏querystrings。 – Tomate 2013-03-07 17:00:27

回答

7
<rewrite> 
    <rules> 
    <rule name="Rule Name" stopProcessing="true"> 
    <match url="^scotsman-photo-products-([A-Za-z0-9-_]+)/?$" /> 
    <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{SCRIPT_NAME}" pattern="^/(files|images|js|css|robots.txt|sitemap.xml|favicon.ico)($|/.*$)" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="scotsman-photo-products.php?pg={R:0}" /> 
</rule> 
<rule name="Other Rule Name" stopProcessing="true"> 
    <match url="^make-scotsman-photo-([A-Za-z0-9-_]+)/?$" /> 
    <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{SCRIPT_NAME}" pattern="^/(files|images|js|css|robots.txt|sitemap.xml|favicon.ico)($|/.*$)" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="make-scotsman-photo.php?pg={R:0}" /> 
</rule> 
</rules> 
</rewrite> 

我認爲這可能會奏效。條件是可選的。

第一個條件國家不使用規則,如果有,其實在那個位置的文件。第二種是類似的,如果它實際上是一個目錄,它會停止。如果URL是在模式中找到的類型,則第三條規則不會運行。

+0

嗯似乎並不喜歡,在所有,甚至現有的web.config絲毫的改變是創建一個500錯誤 – Tomate 2013-03-01 00:50:37

+0

敷在這個...我很抱歉...' '和' '只是爲了確保沒有什麼是瘋狂的第一個附加'''然後'然後添加每次一個規則。我目前沒有我的配置文件在我面前,所以爲了確保我的語法是正確的,請一次添加一個,並查看其中斷位置。 – Leeish 2013-03-01 03:51:59

+0

如果你在IIS上運行,我很確定你也需要安裝重寫模塊。這解釋了一切。 http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module我不知道在不同的Windows環境下運行這個,我運行Win 2008 Server和IIS 7.5。你在跑什麼。如果你還沒有安裝模塊,可以在這裏安裝。 http://www.iis.net/downloads/microsoft/url-rewrite – Leeish 2013-03-01 03:55:09