2015-07-10 78 views
0

我試圖將所有請求重定向到index.php並在頁面上顯示URL。將所有請求重定向到index.php並在頁面上顯示URL

.htaccess文件;

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . index.php [L] 

index.php file;

<!DOCTYPE html> 
<html> 
    <head> 
     <script type="text/javascript" src="assets/libs/js/jquery-1.11.3.min.js"></script> 
     <script type="text/javascript"> 
      $(function() { 
       document.getElementById("body").innerHTML = window.location.pathname; 
      })(); 
     </script> 
    </head> 
    <body id="body"></body> 
</html> 

當我去到localhost /測試,一切完美,「/測試」顯示在頁面上,但是,如果我去localhost/test/anythinghere,沒有顯示在頁面上。我想要發生的一個例子:"/test/anything/you/are/cool"將在頁面上顯示,如果我去localhost/test/anything/you/are/cool

編輯:我解決了這個問題,謝謝。

回答

0

它,因爲你把一個htaccess的,並且隻影響該文件夾......你必須把在/etc/apache2/sites-available/your-site.conf

<VirtualHost *:8888 *:80> 
    DocumentRoot /var/www/help/ 
    ServerName help.com 

    <Directory /var/www/help/> 
    Options FollowSymLinks 
    AllowOverride All 
    AddDefaultCharset utf-8 

    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ /index.php/$1 [L] 
    </Directory> 
</VirtualHost> 

檢查我的重寫規則也是如此。

我說我的重寫...「如果找不到文件夾或文件,請轉到index.php」。這是有道理的,因爲我把它放在虛擬主機...

你正在試圖做同樣的事情,但.htaccess它控制他的文件夾。

0

你可以在.htaccess正則表達式上試試這個變種,馬特。它適用於我:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
+0

這一個適合你,但OP的代碼不?我覺得這是不可能的。 – Anonymous

+0

我在兩臺不同的機器上試過這個,也沒有工作。 – Matt

相關問題