首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写URL :从URL中删除子文件夹和文件扩展名

重写URL :从URL中删除子文件夹和文件扩展名
EN

Stack Overflow用户
提问于 2017-08-16 10:13:31
回答 3查看 1.4K关注 0票数 4

我试图删除.php文件扩展名和文件夹&&子文件夹,如果它们存在的话。

案例1

输入:

代码语言:javascript
复制
127.0.0.1/project/folder/alfa.php

输出:

代码语言:javascript
复制
127.0.0.1/project/alfa

案例2

输入:

代码语言:javascript
复制
127.0.0.1/project/folder/subfolder/beta.php

输出:

代码语言:javascript
复制
127.0.0.1/project/beta

,这是我到目前为止得到的:

只删除扩展可以正常工作,在删除文件夹时有问题。

代码语言:javascript
复制
# Turn mod_rewrite on
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^((?! folder/).+?)/?$ folder/ [L,NC]


RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

请给我建议谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-16 10:58:38

您可以将这个.htaccess放在/project/目录中:

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

# rewrite to folder/subfolder/
RewriteCond %{DOCUMENT_ROOT}/project/folder/subfolder/$1.php -f
RewriteRule ^(.+?)/?$ folder/subfolder/$1.php [L]

# rewrite to folder/
RewriteCond %{DOCUMENT_ROOT}/project/folder/$1.php -f
RewriteRule ^(.+?)/?$ folder/$1.php [L]
票数 2
EN

Stack Overflow用户

发布于 2017-08-16 10:59:00

您可以使用下面的regex从URL捕获所需的字段。然后使用捕获的值1,2生成输出。

代码语言:javascript
复制
([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\/[A-Za-z0-9]*).*(\/.*)\.php

你可以在这里看到演示。它在1中捕获地址和父文件夹,在2中捕获文件名。

注:我认为地址是ipv4

票数 1
EN

Stack Overflow用户

发布于 2017-08-16 10:49:26

基于您在对问题的评论中所作的澄清--仅通过RewriteRule很难动态处理这一问题。

考虑到这一点:

Apache如何知道/project/beta映射到/project/folder/subfolder/beta.php/project/alfa映射到/project/folder/alfa.php

您可以这样硬编码:

RewriteRule ^project/beta/? /project/folder/subfolder/beta.php [QSA,L]

RewriteRule ^/project/alfa/? /project/folder/alfa.php [QSA,L]

如果这是不可行的,因为这里需要大量的规则,我将尝试通过脚本来解决这个问题。就像这样:

如果请求的资源不是文件或目录,则将其发送到脚本。然后,让脚本搜索目标目录结构,如/project,以查找与掩蔽URL第二部分( alfa / beta部分)匹配的所有php文件。如果只找到一个文件,则需要它才能运行它。

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

https://stackoverflow.com/questions/45710824

复制
相关文章

相似问题

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