2017-03-07 87 views
0

我在運行XAMPP堆棧的我的localhost上有PHP項目。.htaccess在xamp中不工作

我想從所有面向用戶的URL中刪除.php擴展名。

我嘗試使用Apache的mod_rewrite.htaccess文件:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    RewriteRule ^locations(/.*)?$ poet.php [L,NC] 
</IfModule> 

但它是 「不工作」。

+1

[Remove .php extension with .htaccess]可能的重複(http://stackoverflow.com/questions/4026021/remove-php-extension-with-htaccess) –

+0

@Abhishek我看到這篇文章時,我谷歌但這個步驟沒有工作,所以最後我決定問問題 –

+0

RewriteEngine敘述上 重寫規則^(+)\。PHP $/$ 1 [R,L] 的RewriteCond%{REQUEST_FILENAME} .PHP -f 重寫規則^(。* ?)/?$ /$1.php [NC,END] –

回答

0

把這個代碼在.htaccess文件

RewriteEngine On 
RewriteBase/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R=301,L] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [NC,L] 

注意:不要忘記更改重寫基本路徑,如果您的項目文件夾不在根目錄下。

+0

如果您的項目文件夾不在根目錄下,請不要忘記更改RewriteBase路徑。我無法理解這一點。它的第一個htaccess –

+0

這意味着如果你的項目是在htdocs文件夾的根目錄下,那麼就使用上面的代碼,但是如果你的項目不在htdocs的根目錄下,那麼請指定到你的項目文件夾的路徑。假設你的項目在htdocs/projects/demoproject1裏面......那麼RewriteBase的路徑就會像這樣RewriteBase/projects/demoproject1/ –

+0

謝謝你。我如何設置404使用此規則 –

0

試試這個代碼解決你的問題

 <IfModule mod_rewrite.c> 
      RewriteEngine On 
      RewriteCond %{REQUEST_FILENAME}.php -f 
      RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L] 
    </IfModule> 
+0

它不工作。 –

+0

我還啓用AllowOverride All從我的http.conf –

+0

@VivekMishra編輯代碼再試一次 –

0
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L] 
0

嘗試以下項目目錄中的規則,

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [L]