2014-10-16 49 views
1

我剛剛將我的工作modx站點從我共享的託管服務器移到我的本地系統。 在服務器(LAMP)上,友好的URL可以正常工作。 在我的本地計算機(WAMP)友好的URL上產生一個404錯誤(儘管如其他人所描述的,實際的URL看起來正確,但它不起作用)。 (具體我的地方是Windows 8)
服務器Apache的版本= 2.2.29
本地版本的Apache 2.2.25 =(有沒有Windows安裝程序爲2.2.29)
PHP服務器上= 5.4
PHP上local = 5.4modx革命2.3.x FURLs(友好的URL)不能在WAMP上工作

重要提示:modx的所有其他功能似乎在我的本地工作得很好。 我確實按照官方modx instructions的規定將一個革命網站從一個地方搬到另一個地方。 此外,指出我在我的主機文件中添加了一個條目以將域指向本地主機,以便域不會更改......這樣,依賴於域的任何內容在我將其從本地開發環境移到服務器。

我所做的研究
互聯網&這裏計算器上廣泛搜索。 所以我通過閱讀和在本網站嘗試過各種東西,從不同的文章最引人注目的包括: This one This one & This one 而且也是別人說我沒有列出。 我也閱讀了更多的.htacces設置(儘管我對Rewrites很熟悉)。

我所做的一切,試圖解決這個問題
2'-修飾我的.htaccess
車種和關閉系統設置的所有其他設置,除了捲起的選項來啓用/禁用FURLs(System_Settings - >區域:友好URL)
- 我還驗證了我安裝的apache模塊與我的服務器/ web主機(特別是mod_rewrite,但也包括其他)相同。
- 我還證實,我的本地PHP有最少的所有必需的擴展加載,這是modx所需的或推薦的。

我仍在研究這個問題,所以我有可能在得到很多答覆之前找到答案,但我認爲這值得提問。

在此先感謝。

UPDATE
我也試着將所有的配置設置出的.htaccess的(以及除RewriteBase因爲把它在httpd.conf導致Apache的錯誤,使阿帕奇加載失敗......它的設計只能進入.htaccess文件)。 這也沒有幫助。 我也手動刪除了所有的緩存文件,這也沒有幫助&上次我把友好的URL關掉了,證實我可以獲得資源,然後再打開它們。這最後的努力也沒有幫助。

回答

1

好吧等了很多等待迴應和大量的友情鏈接&重寫(儘管...我真的無法看到重寫是如何成爲問題的,因爲它在服務器上工作並且沒有出現錯誤),我找到了我的問題的答案。

接聽/修復:
如果你有一個虛擬主機的指令,在這樣的目錄指令添加此:

<Directory "[same directory as virtual host]">

指令。 如果您沒有VirtualHost指令,請嘗試添加一個,然後添加Directory指令。


<VirtualHost *:80> 
 
ServerName somedomain.com 
 
DocumentRoot "D:/websitefiles/websitefilesforsomedomain" 
 
</VirtualHost> 
 
<Directory "D:/websitefiles/websitefilesforsomedomain"> 
 
Options +SymLinksIfOwnerMatch 
 
RewriteEngine On 
 
#####RwriteBase is removed because it isn't allowed in the httpd.conf instead it must be in a .htaccess file 
 
#RewriteBase/
 

 
#NOTE: there were other things here that are part of the .htaccess provided by modx that I am using but they are not relevant to the friendly URLs 
 
    
 
# The Friendly URLs part 
 
RewriteCond %{REQUEST_FILENAME} !-f 
 
RewriteCond %{REQUEST_FILENAME} !-d 
 
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA,NC] 
 
</Directory>

所以我的猜測是 1,以上是必要的,因爲我已經有一些虛擬主機指令(這是我的機器畢竟...我實際上有很多VirtualHost指令...) 或 2.因爲Windows具有不同\作爲路徑的一部分(您知道D:\ webs itefiles \而不是/ var/www /),額外的特定目錄引用是必要的... 也許Apache無法理解在哪裏應用這個,因爲缺少一個路徑或多個可能的路徑......? 對我來說,奇怪的部分是目錄中的.htaccess文件應該有TOLD Apache應用它的地方,但那不起作用。 重要的一點:我把上面的內容放在我的httpd.conf中......它可能會回到.htaccess中,但我沒有在.htaccess中定義我的虛擬主機。(Apache 2.4注意:我不知道這在Apache 2.4中如何工作,強烈建議虛擬主機進入虛擬主機的文件中......我猜這一切都可能已經消失在那裏,一切都會像這裏一樣工作......但是我實際上並不在乎這些,不知道)。

無論如何,這工作。我希望它適用於其他任何有類似問題的人(注意:我正在與其他人在使用Windows 7開發機器時遇到困難...我會讓他嘗試以上方法,看看它是否修復他爲他的問題以及&儘量記得回報)。