首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除.php扩展

如何删除.php扩展
EN

Stack Overflow用户
提问于 2016-03-25 09:26:33
回答 2查看 77关注 0票数 3

我已经创建了我的第一个Php解决方案,但是在将.php扩展从URL中删除时遇到了困难。它在根目录下工作,但在子文件夹中不工作?

www.domain.com/index.phpwww.domain.com/index (或www.domain.com/)到达

然后就变得棘手了。

例如。如果不使用www.domain.com/en/europe/bikes/racer-bike.phpwww.domain.com/en/bikes/racer-bikewww.domain.com/en/bikes/ and on index.php没有什么不同

我的.htaccess文件如下所示:

代码语言:javascript
复制
Options -MultiViews
RewriteEngine on
RewriteBase /

# Remove .php-extension from url
RewriteCond %{REQUEST_URI} ^/(.*).php$
RewriteRule ^(.*)$ %1 [L,QSA]

# Add trailing slash to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]

# SSL
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*)$ http://www.domain.com$1 [R=301]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R=301,QSA]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-25 09:50:28

我试过了,效果很好:

我的脏结构

代码语言:javascript
复制
/
index.php
/sub
    file.php

我的访问权限是这样的:

代码语言:javascript
复制
RewriteEngine On
RewriteBase /

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ([A-Za-z]+)/(.*)$ [NC]
RewriteCond %{DOCUMENT_ROOT}/%1 -d
RewriteRule ^([A-Za-z]+)/(.*)$ $1/$2.php [NC,L,QSA]

试试看

票数 1
EN

Stack Overflow用户

发布于 2016-03-25 09:33:41

你做错了..。大多数情况下,您不会为每个uri (路由)创建php文件。您不应该删除php扩展,您应该将所有uri的扩展定向到index.php,并使用一些路由器来定义如何处理每个请求。或者你可以使用一些框架来实现,比如laravel或者symfony等等。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36217269

复制
相关文章

相似问题

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