2016-02-01 140 views
1

我使用Shephertz的非常基本的URL路由機制來路由我的頁面。 但是我遇到了文件擴展名的問題。使用htaccess重定向帶/不帶.php擴展名的index.php

如果我加載www.example.com/register我得到index.php,但保留URL。

但是,如果我加載www.example.com/register.php,它不會將我發送到index.php,但會保留URL。怎麼來的?

這是我.htaccess文件,它適用於非擴展:

Options -MultiViews 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [QSA,L] 

我如何結合這兩種? I want both of these to be marked blue...

+0

是否要將php文件(如果請求擴展名)重定向到404? – starkeen

+0

是不是'register.php'一個真正的文件? –

+0

是的,是的,但是,我不想在文件上使用擴展名...只有乾淨的URL。 – PhyCoMath

回答

0

所有外部PHP請求重定向到404,你可以使用下面的規則在.htaccess:

RewriteCond %{THE_REQUEST} /.+\.php [NC] 
RewriteRule^- [L,R=404] 
+0

如果你幫助我,請參閱問題更新:) – PhyCoMath

0

使用RewriteCondRewriteRule解決這個自己。 這是我的.htaccess貌似現在:

Options -MultiViews 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [QSA,L] 
RewriteCond %{REQUEST_FILENAME} /.+\.php [NC] 
RewriteRule^index.php [QSA,L] 

我現在可以重定向URL都與PHP文件擴展名,自定義的404頁,使用Shephertz的路由機制。

  • www.example.com/example.php - > 404page.php
  • www.example.com/example - >使用example.php

這是404頁:

enter image description here

這是頁面而不.php後綴

enter image description here