首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除URL中的.PHP文件扩展名

问删除URL中的.PHP文件扩展名
EN

Stack Overflow用户
提问于 2012-09-11 22:31:33
回答 4查看 2.2K关注 0票数 0

我在强制删除URL中的.php文件扩展名时遇到一点问题。

如果用户:我可以成功删除.php文件扩展名:

代码语言:javascript
复制
#Remove PHP if original request is /foo/bar.php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule ^(.*)\.php(\?.*)?$ $1$2 [R=301,L]

我的目标是让它也删除扩展,如果:

代码语言:javascript
复制
# Remove PHP if original request is /foo.php/bar

我这样问是因为现在用户可以转到URL并输入http://www.site.com/contact.php/about,它将呈现我的about页面。我的目标是强制删除.php并呈现:http://www.site.com/contact/about

我希望把上面的代码加到上面,但是我想不出来。

提亚

EN

回答 4

Stack Overflow用户

发布于 2012-09-11 22:43:18

下面的.htaccess页面给了我请求的参数,你可以得到“”

代码语言:javascript
复制
AddDefaultCharset utf-8
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [L]

DirectoryIndex index.php

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)?$ index\.php?page=$1&s=$2 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/?$ index\.php?page=$1 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})?$ index\.php?page=$1 [L]

ErrorDocument 404 /404

获取"page“参数,然后像这样调用它

代码语言:javascript
复制
include('inc/'.$_REQUEST['page'].'.php');

记住从你的链接中删除.php ext

票数 2
EN

Stack Overflow用户

发布于 2012-09-11 22:58:57

看起来你得到了删除部分,但是你遗漏了内部重写部分。您尝试从URL中删除php,并将客户端重定向到没有它的URL。但您的条件不匹配请求,请将其更改为:

代码语言:javascript
复制
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ .*\.php.*$
RewriteRule ^(.*)\.php(.*)?$ /$1$2 [R=301,L]

然后你需要在内部重写它(不要重定向浏览器)。因此,在相同的htaccess文件中,添加:

代码语言:javascript
复制
RewriteCond %{REQUEST_URI} ^/([^/]+)(.*)$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^([^/]+)(.*)$ /$1.php$2 [L]
票数 1
EN

Stack Overflow用户

发布于 2012-09-11 22:40:58

将您的两行代码替换为下面这一行:(您的规则中有一个错误,这就是为什么它在中间没有检测到.php,并且您不需要重写条件)

代码语言:javascript
复制
RewriteRule ^(.+)\.php(/.*)?$ /$1$2 [L,R=301]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12372096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档