如何在URL中间删除扩展.php



这是我的URL:http://localhost/school-project/project1/mypage.php/home

我想在mypage.php中摆脱.php。因此,新的URL应该看起来像这样:http://localhost/school-project/project1/mypage/home

我试图在.htaccess中使用重写,但是它们都没有起作用!

这是我的.htaccess中的代码:

(这实际上是摆脱了.php,但它将页面转换为未找到对象,错误404)

RewriteRule ^mypage.php/(.*)$ http://localhost/school-project/project1/mypage/$1[NC,L,R]

RewriteRule (.*)mypage/(.*)$ /mypage.php?/$1 [L]

我真的不知道问题在哪里。有任何想法吗?谢谢!

尝试以下:

RewriteEngine on 
RewriteCond %{THE_REQUEST} s/+(.*).php(.*)sHTTP.*$ [NC]
RewriteRule ^ /%1%2 [R=302,L,NE]
RewriteCond %{REQUEST_URI} !.php
RewriteRule ^([^/]*)/([^/]*)$ $1.php/$2 [L]

second&第三行是在外部卸下php扩展。&第五至将请求重定向到内部原始路径。

清除浏览器缓存,然后测试,如果可以的话,请将R=302更改为R=301,以成为永久重定向。

我为我的问题找到了另一个解决方案。非常感谢您的所有帮助!

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

最新更新