[英]Redirect url with/without .php extension to index.php using htaccess
我使用Shephertz的非常基本的URL路由機制來路由我的頁面。 但是我遇到了文件擴展名的問題。
如果我加載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]
如何將兩者結合起來? 我希望將它們都標記為藍色...
要將所有外部php請求重定向到404,您可以在.htaccess中使用以下規則:
RewriteCond %{THE_REQUEST} /.+\.php [NC]
RewriteRule ^ - [L,R=404]
我自己使用RewriteCond
和RewriteRule
解決了這個問題。 這是我的.htaccess
現在的樣子:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} /.+\.php [NC]
RewriteRule ^ index.php [QSA,L]
現在,我可以使用Shephertz的路由機制將所有帶有.php文件擴展名的URL重定向到自定義404頁面。
這是404頁:
這是沒有.php文件擴展名的頁面
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.