大家好。我有個問題: 我的houtai目錄放在view下,不在根目錄下。如果輸入http://ip/houtai 會報404 查看Apache日誌,探索服務器去根目錄下找houtai檔案夾,然後找不到報404. 我期望的是PHP架構解析出houtai檔案夾,併到view檔案夾下找頁面。是不是哪裡的配置有問題,URL重寫規則配置錯了?
線上等,多謝。
回複討論(解決方案)
houtai目錄放在view下,不在根目錄下
你是怎麼讓你主機去訪問view下檔案呢?
如果你的部署符合當前使用PHP架構的規範,不可能出現這種問題
另外提醒一下,http://ip/houtai 如果你沒有寫rewrite,它本身就是訪問根目錄的houtai檔案夾,然後尋找下面的index.php/.html等等 至少要改成http://ip/index.php/houtai
如果你的部署符合當前使用PHP架構的規範,不可能出現這種問題
另外提醒一下,http://ip/houtai 如果你沒有寫rewrite,它本身就是訪問根目錄的houtai檔案夾,然後尋找下面的index.php/.html等等 至少要改成http://ip/index.php/houtai
恩 懷疑是偽靜態開啟的有問題
你的架構現在有用什麼重寫規則嗎?如果沒有,那麼在根目錄讀取houtai是正常的。
你是想寫一個重寫規則,訪問 http://ip/houtai rewrite 到 http://ip/view/houtai ?
伺服器上寫下重寫規則就可以了吧,把houtai映射到/view/houtai下
你的架構現在有用什麼重寫規則嗎?如果沒有,那麼在根目錄讀取houtai是正常的。
你是想寫一個重寫規則,訪問 http://ip/houtai rewrite 到 http://ip/view/houtai ?
我不想直接到根目錄下尋找檔案,想讓伺服器先忽略掉ip/後的檔案或檔案夾,先到根目錄index.php中,然後通過PHP的MVC架構解析出URI,然後到view下尋找。這種方式通過.htaccess可以吧?呵呵,PHP新手求指導。
你的架構現在有用什麼重寫規則嗎?如果沒有,那麼在根目錄讀取houtai是正常的。
你是想寫一個重寫規則,訪問 http://ip/houtai rewrite 到 http://ip/view/houtai ?
我不想直接到根目錄下尋找檔案,想讓伺服器先忽略掉ip/後的檔案或檔案夾,先到根目錄index.php中,然後通過PHP的MVC架構解析出URI,然後到view下尋找。這種方式通過.htaccess可以吧?呵呵,PHP新手求指導。
補充:我的控制器裡也有houtai這個檔案夾
有什麼問題就直接說,何必繞那麼一個圈子
RewriteEngine on#如果目錄存在就直接存取目錄不進行RewriteRuleRewriteCond %{REQUEST_FILENAME} !-d#如果檔案存在,就直接存取檔案,不進行下面的RewriteRule.(不是檔案或檔案不存在就執行重寫)RewriteCond %{REQUEST_FILENAME} !-f#所有找不著實際路徑的檔案,統一交給index.php處理RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
你需要寫一條偽靜態規則把你的期望的url指向index.php,ip/後的檔案或檔案夾作為參數傳給index.php.
比如 這樣:RewriteRule ^(.*)$ /index.php?/$1
具體怎麼寫規則 需要看你的架構是怎麼解析url的
有什麼問題就直接說,何必繞那麼一個圈子
RewriteEngine on#如果目錄存在就直接存取目錄不進行RewriteRuleRewriteCond %{REQUEST_FILENAME} !-d#如果檔案存在,就直接存取檔案,不進行下面的RewriteRule.(不是檔案或檔案不存在就執行重寫)RewriteCond %{REQUEST_FILENAME} !-f#所有找不著實際路徑的檔案,統一交給index.php處理RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
我在根目錄下.htaccess裡寫了,不生效啊。
http://www.jb51.net/article/25476.htm
你的架構現在有用什麼重寫規則嗎?如果沒有,那麼在根目錄讀取houtai是正常的。
你是想寫一個重寫規則,訪問 http://ip/houtai rewrite 到 http://ip/view/houtai ?
我不想直接到根目錄下尋找檔案,想讓伺服器先忽略掉ip/後的檔案或檔案夾,先到根目錄index.php中,然後通過PHP的MVC架構解析出URI,然後到view下尋找。這種方式通過.htaccess可以吧?呵呵,PHP新手求指導。
那就是網站使用單入口的rewrite了,同thinkphp一樣。
在項目的根目錄下面建立一個.htaccess檔案,裡面寫入下面的內容:
RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
開啟.htaccess方法
開啟httpd.conf(在那裡? APACHE目錄的CONF目錄裡面),用文本編纂器開啟後,尋找
(1)
Options FollowSymLinks
AllowOverride None
改為
Options FollowSymLinks
AllowOverride All
(2)去掉下面的注釋
LoadModule rewrite_module modules/mod_rewrite.so
http://www.jb51.net/article/25476.htm
我在Apache conf中載入rewrite模組時報 module rewrite_module is built-in and can't be loaded,應該是內建的,不用再Load了吧。然後在vhost的conf中設定了 AllowOverride All, 可是.htaccess還是不生效。
http://www.jb51.net/article/25476.htm
我在Apache conf中載入rewrite模組時報 module rewrite_module is built-in and can't be loaded,應該是內建的,不用再Load了吧。然後在vhost的conf中設定了 AllowOverride All, 可是.htaccess還是不生效。
.htaccess 一直不生效,如果把重寫規則放到vhost下的conf中,網站會報400錯誤。求大家幫忙