我陷入了一個奇怪的問題。.htaccess - mod_rewrite正在爲一些頁面工作,但不爲其他人
我有一個文件的位置/public_html/academics/courses.php
我想給的.htaccess mod_rewrite的網址如下:
原始地址:HTTP:// niecdelhi。 ac.in/academics/courses/
的mod_rewrite後:http://niecdelhi.ac.in/index.php?inc=/academics/courses/
我想要的基本上是將所有的URL mod_rewrite改爲index.php,並將URL作爲名爲「inc」的參數傳遞。然後,在index.php中,我通過include include($ _ GET ['inc'])來包含文件;
mod_rewrite正在爲網站上的某些頁面工作。我正在獲取$ inc中的URL。但是,對於其他頁面而言,這根本不起作用。
例如,考慮在服務器上存在的兩個文件:
- http://niecdelhi.ac.in/academics/courses.php
- 的http:// niecdelhi。 ac.in/academics/library.php
mod_rewrite的是工作第一,該文件都會被包含在的index.php 但對於第二個我得到的純現有的文件。不包括index.php
我希望你能理解我面臨的問題。請爲我提供解決方案。
.htaccess文件
Options +FollowSymlinks
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_URI} !\..*$ [NC]
RewriteCond %{QUERY_STRING} (.*) [NC]
RewriteRule ^(.*)$ index.php?inc=$1&%1 [L]
頁的工作:http://niecdelhi.ac.in/academics/courses/
頁不能正常工作:http://niecdelhi.ac.in/academics/library/
* 編輯 *
ŧ這裏沒有其他的.htaccess任何地方。儘管如此,我發現了一些關於正在發生的事情的線索。這個問題只發生在Linux服務器上。該代碼在Windows服務器上正常工作。我有一個Linux服務器與PHP 5.2.16。
另外,關於一些頁面的工作和一些沒有。我發現只有那些在同一個目錄中有相同名稱的文件夾才能工作。例如,學者目錄是如下:
academics/
|_ courses/
| |_ mba.php
| |_ mca.php
|_ courses.php
|_ library.php
現在,由於courses.php具有在相同的目錄相同名稱的文件夾。它得到mod_rewrite罰款。但是library.php沒有得到mod_rewrite。
Linux服務器被跳過了實際存在的文件mod_rewrite的。爲什麼這樣 ??
在文件樹中的htaccess文件低於其它兩個文件? – NVTOnline
你確定你的鏈接指向添加了查詢字符串的正確地址嗎?而不是相對路徑? – NVTOnline
@NVTOnline - 是的,這些文件是相同的.htaccess以下文件樹.. –