如何删除 URL 中间的扩展名 .php
How to remove extension .php in the middle of URL
这是我的 URL:
http://localhost/school-project/project1/mypage.php/home
我想删除 mypage.php 中的 .php。所以新的 URL 应该是这样的:
http://localhost/school-project/project1/mypage/home
我曾尝试在 .htaccess 中使用 RewriteRule,但 none 成功了!
这是我的 .htaccess 中的代码:
(这个实际上去掉了.php,但它把页面转到找不到对象,错误404)
RewriteRule ^mypage.php/(.*)$ http://localhost/school-project/project1/mypage/[NC,L,R]
或
RewriteRule (.*)mypage/(.*)$ /mypage.php?/ [L]
我真的不知道问题出在哪里。有任何想法吗?
谢谢!
试试这个:
RewriteEngine on
RewriteCond %{THE_REQUEST} \s/+(.*)\.php(.*)\sHTTP.*$ [NC]
RewriteRule ^ /%1%2 [R=302,L,NE]
RewriteCond %{REQUEST_URI} !\.php
RewriteRule ^([^\/]*)/([^\/]*)$ .php/ [L]
第二和第三行正在从外部删除 php
扩展。
第四和第五个在内部将请求重定向到原始路径。
清除浏览器缓存然后测试,如果可以将R=302
更改为R=301
以便永久重定向。
我找到了解决问题的另一种方法。非常感谢您的帮助!
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^mypage(/.+)$ mypage.php [NC,L]
这是我的 URL: http://localhost/school-project/project1/mypage.php/home
我想删除 mypage.php 中的 .php。所以新的 URL 应该是这样的: http://localhost/school-project/project1/mypage/home
我曾尝试在 .htaccess 中使用 RewriteRule,但 none 成功了!
这是我的 .htaccess 中的代码:
(这个实际上去掉了.php,但它把页面转到找不到对象,错误404)
RewriteRule ^mypage.php/(.*)$ http://localhost/school-project/project1/mypage/[NC,L,R]
或
RewriteRule (.*)mypage/(.*)$ /mypage.php?/ [L]
我真的不知道问题出在哪里。有任何想法吗? 谢谢!
试试这个:
RewriteEngine on
RewriteCond %{THE_REQUEST} \s/+(.*)\.php(.*)\sHTTP.*$ [NC]
RewriteRule ^ /%1%2 [R=302,L,NE]
RewriteCond %{REQUEST_URI} !\.php
RewriteRule ^([^\/]*)/([^\/]*)$ .php/ [L]
第二和第三行正在从外部删除 php
扩展。
第四和第五个在内部将请求重定向到原始路径。
清除浏览器缓存然后测试,如果可以将R=302
更改为R=301
以便永久重定向。
我找到了解决问题的另一种方法。非常感谢您的帮助!
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^mypage(/.+)$ mypage.php [NC,L]