.htaccess将文件名URL的请求重写为相应的永久链接URL

用户名

我对我的.htaccess代码有疑问。它正在执行以下操作:

  1. 在每个URL末尾添加斜杠
  2. 删除.php文件扩展名。

此方法有效,因此,如果键入domain.com/page/,浏览器将显示的内容domain.com/page.php如果输入domain.com/page(不带斜杠),浏览器将重定向到domain.com/page/

但是,如果我键入domain.com/page.php浏览器,则不会重定向到domain.com/page/

有没有一种方法可以将请求重定向domain.com/page.phpdomain.com/page/

这是我当前的.htaccess代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !(^$|\.[a-zA-Z0-9]{1,5}|/)$ %{REQUEST_URI}/ [R=301,L]

RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^((/?[^/]+){1,2})/$ $1.php [L]

谢谢您的帮助!

RavinderSingh13

对于显示的示例,请您尝试以下操作。在测试URL之前,请确保清除浏览器缓存。

RewriteEngine ON
##First 2 rules are added by OP itself.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !(^$|\.[a-zA-Z0-9]{1,5}|/)$ %{REQUEST_URI}/ [R=301,L]

RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^((/?[^/]+){1,2})/$ $1.php [L]

##Newly added rule for removing .php from browser if .php is hit in it.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

.htaccess ReWriteRule-在此服务器上找不到请求的URL <重写的文件名>

来自分类Dev

.htaccess将文件名重写为页面

来自分类Dev

htaccess将网址重写为https并删除文件名

来自分类Dev

htaccess将网址重写为https并删除文件名

来自分类Dev

.htaccess URL重写并与现有文件名冲突

来自分类Dev

htaccess 重写总是传递文件名而不是实际的 url

来自分类Dev

如何.htaccess将文件名重定向为新网站上的url参数?

来自分类Dev

.htaccess将URL重写为模拟的子文件夹

来自分类Dev

重写url并使用这样的文件名nginx提供文件

来自分类Dev

将大写URL重写为小写URL htaccess

来自分类Dev

htaccess将url文件夹/文件重写为folder / file.php

来自分类Dev

htaccess重写只获取文件名

来自分类Dev

htaccess 重写 - 无法识别文件名

来自分类Dev

如何使用htaccess将wp-admin URL重写为其他文件夹?

来自分类Dev

如何在Codeigniter中使用htaccess文件将URL重写为特定控制器类

来自分类Dev

htaccess重写不带.php扩展名的URL到文件

来自分类Dev

URL重写和htaccess文件

来自分类Dev

htaccess Mod将$ _GET重写为普通URL

来自分类Dev

IIS将所有请求重写为静态URL

来自分类Dev

从 url 链接列表中解析文件名

来自分类Dev

.htaccess URL为Yourls重写失败-在此服务器上找不到请求的URL

来自分类Dev

如何将许多包含公共字符串的URL重写为相应的替代路径?

来自分类Dev

如何将URL与文件中的文件名结合

来自分类Dev

ASP Classic-如何设置永久链接。URL重写?

来自分类Dev

WP URL重写/自定义永久链接

来自分类Dev

当文件名加扩展名在 url 中时,不会触发 IIS 重写规则

来自分类Dev

使用.htaccess文件重写javascript文件url

来自分类Dev

使用url重写选择一个没有文件名的文件

来自分类Dev

Apache 将多级虚拟 url 重写为通用 HTML 文件

Related 相关文章

  1. 1

    .htaccess ReWriteRule-在此服务器上找不到请求的URL <重写的文件名>

  2. 2

    .htaccess将文件名重写为页面

  3. 3

    htaccess将网址重写为https并删除文件名

  4. 4

    htaccess将网址重写为https并删除文件名

  5. 5

    .htaccess URL重写并与现有文件名冲突

  6. 6

    htaccess 重写总是传递文件名而不是实际的 url

  7. 7

    如何.htaccess将文件名重定向为新网站上的url参数?

  8. 8

    .htaccess将URL重写为模拟的子文件夹

  9. 9

    重写url并使用这样的文件名nginx提供文件

  10. 10

    将大写URL重写为小写URL htaccess

  11. 11

    htaccess将url文件夹/文件重写为folder / file.php

  12. 12

    htaccess重写只获取文件名

  13. 13

    htaccess 重写 - 无法识别文件名

  14. 14

    如何使用htaccess将wp-admin URL重写为其他文件夹?

  15. 15

    如何在Codeigniter中使用htaccess文件将URL重写为特定控制器类

  16. 16

    htaccess重写不带.php扩展名的URL到文件

  17. 17

    URL重写和htaccess文件

  18. 18

    htaccess Mod将$ _GET重写为普通URL

  19. 19

    IIS将所有请求重写为静态URL

  20. 20

    从 url 链接列表中解析文件名

  21. 21

    .htaccess URL为Yourls重写失败-在此服务器上找不到请求的URL

  22. 22

    如何将许多包含公共字符串的URL重写为相应的替代路径?

  23. 23

    如何将URL与文件中的文件名结合

  24. 24

    ASP Classic-如何设置永久链接。URL重写?

  25. 25

    WP URL重写/自定义永久链接

  26. 26

    当文件名加扩展名在 url 中时,不会触发 IIS 重写规则

  27. 27

    使用.htaccess文件重写javascript文件url

  28. 28

    使用url重写选择一个没有文件名的文件

  29. 29

    Apache 将多级虚拟 url 重写为通用 HTML 文件

热门标签

归档