这是我的网址: http://localhost/school-project/project1/mypage.php/home
我想摆脱mypage.php中的.php。因此,新网址应如下所示: http://localhost/school-project/project1/mypage/home
我试图在.htaccess中使用RewriteRule,但是它们都不起作用!
这是我的.htaccess文件中的代码:
(这实际上摆脱了.php,但将页面转到了“找不到对象,错误404”)
RewriteRule ^mypage.php/(.*)$ http://localhost/school-project/project1/mypage/$1[NC,L,R]
或
RewriteRule (.*)mypage/(.*)$ /mypage.php?/$1 [L]
我真的不知道问题出在哪里。有任何想法吗? 谢谢!
答案 0 :(得分:2)
尝试一下:
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]
第二行和第三行从外部删除php
扩展名。
第四和第五个将请求内部重定向到原始路径。
清除浏览器缓存,然后进行测试,如果可以,请将R=302
更改为R=301
以便永久重定向。
答案 1 :(得分:0)
我为我的问题找到了另一种解决方案。非常感谢您的所有帮助!
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^mypage(/.+)$ mypage.php$1 [NC,L]