簡體   English   中英

htaccess-無法從網址php中刪除文件擴展名

[英]htaccess- unable to remove file extension from url php

我正在嘗試以下規則從文件名中刪除文件擴展名,但問題是它已被刪除,但是當我再次登錄時,它沒有重定向到我的主頁。

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase \

RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]  

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L] 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/$ $1.php 

謝謝

在重定向中,只需輸入不帶擴展名的頁面名稱即可。 header('Location:index'); redirect_user('index'); 並在您的.htaccess文件中使用下面的代碼。 現在瀏覽器上的鏈接將顯示為“ localhost / index”

RewriteEngine on
RewriteRule ^([^./]{3}[^.]*)$ /index.php?page=$1 [QSA,L]

我認為您的規則有些偏離。 您正在使用THE_REQUEST將php擴展名重定向到非php擴展名,但是您在重寫器中未在%1之后使用/ ,因此,在讀取下一條規則時,它不匹配,因為只有在該規則中包含/時,它才會內部重定向。 因此,可以在第二條規則的%1之后添加正斜杠,或者在最后一條規則中將反斜杠設置為可選。 我只是在最后一條規則中將其設置為可選,因此它將以任何一種方式匹配。

嘗試此更新,並查看其工作方式。

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]  

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ /([^&\ ]+).php [NC]
RewriteRule ^ /%1? [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/?$ $1.php [NC,L]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM