2017-03-04 137 views
0

我正在使用PHP在本地機器上的網站上工作。
在我的.htaccess文件,我有以下行:.htaccess和GET []變量

RewriteRule ^project-details/([a-zA-Z0-9-]+)/ project-details.php?pn=$1 [NC,L] 

在產品頁面上,我有一個包含像./product-details/icecap-mouse249/鏈接...這.htaccess文件又將採取並指定「項目icecap-mouse249「到行尾的」pn「:?pn=$1 [NC,L]

當點擊該項目時,該人將被帶到產品詳情頁面。在該頁面中,我有以下行:

$pn = $_GET['pn']; 

這允許URI拉「PN」值,並將其分配給變量$pn並利用可變從數據庫中提取數據和顯示的所有信息的特定產品。

所以,它在我的機器上本地工作,但是當我上傳文件時,頁面不會拉動任何東西$_GET[pn]

產品詳細信息頁面的工作,因爲當我硬編碼值$pn爲:

$pn = 'icecap-mouse249'; 

頁面顯示正常......從數據庫拉數據。

我已經完成了phpinfo();來查看是否啓用了mod_rewrite,但phpinfo頁面的「Loaded Modules」部分未顯示。我做了一個CTRL + F來查看我是否可以通過FIND工具找到'mod_rewrite',但沒有彈出。

絆倒我的東西是它在我的機器上在本地工作。

我花了一個小時與我的主機提供商......他們沒有任何幫助。

我希望我解釋自己的權利,任何洞察力將不勝感激。謝謝。

回答

0

你的代碼是正確

看起來你是在處理特殊的服務器配置。 嘗試禁用可能導致1and1問題的多視圖(添加到.htaccess),並嘗試單獨添加AllowOverride all。

Options -MultiViews 
AllowOverride All 

上傳文件後,當您點擊鏈接時,頁面是否顯示任何錯誤?它顯示任何東西嗎?

你說,你有你的鏈接指向./product-details/icecap-mouse249/。請確保你在哪裏把你的鏈接的頁面是根diretory這樣的:

http://example.com/page-with-links.php

但是,如果與鏈接的頁面是根目錄外將無法正常工作。

http://example.com/xyz/page-with-links.php

這是因爲你被要求尋找^project-details這意味着

http://localhost/project-details/any-string/http://example.com/project-details/any-string/

+0

感謝您看在我的代碼。我的所有文件和.htaccess文件都位於根目錄中。奇怪的是,網頁在我的筆記本電腦(XAMPP)上的本地服務器上工作,它在GoDaddy服務器上工作(當我在那裏時,但我已經轉移到1and1)......這就是它的地方不工作...在1and1服務器上。我已經與客戶服務部門進行了溝通,但他們所做的僅僅是確認apache配置中是否啓用了mod_rewrite;他們說他們是。所以,我現在很困惑。 – Lexiriam

+0

我編輯了答案。嘗試添加到.htacces「選項-MultiViews和AllowOverride全部」。 – docliving

+0

我嘗試添加您推薦的內容,但仍然無法正常工作。我需要繼續排除故障。我已經在StackOverflow上做了一些相同的研究,可悲的是沒有爲我工作。謝謝,無論如何。 – Lexiriam