【问题标题】:mod rewrite from .php to subdirectorymod从.php重写到子目录
【发布时间】:2021-04-26 20:18:33
【问题描述】:

我喜欢转发类似的链接

https://server.com/checkAvailabilityhttps://server.com/api/checkAvailability.php

我在 .htaccess 中尝试了以下操作,但没有成功


Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

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

【问题讨论】:

  • 您的规则看起来几乎没有问题。只需将此代码放入api/.htaccess,最后一行应为RewriteRule ^(.*?)/?$ $1.php [L]

标签: .htaccess mod-rewrite url-rewriting


【解决方案1】:

您能否尝试使用您展示的示例进行跟踪、编写和测试。请确保在测试 URL 之前清除浏览器缓存。

Options +FollowSymLinks -MultiViews
RewriteEngine ON
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^(.*)/?$ api/$1.php [L]

【讨论】:

  • @ryanramsumair,能否请您告诉我您点击的是哪个示例/示例网址以及您遇到的错误是什么?
  • 当我尝试访问 server.com/checkAvailability 并且文件位于 server.com/api/checkAvailability.php 时,我得到 404 错误未找到
  • @ryanramsumair,好的,您能否尝试将规则从 RewriteCond %{DOCUMENT_ROOT}/$1\.php -f 更改为 RewriteCond %{REQUEST_FILENAME}/$1\.php -f 一次,然后告诉我进展如何?
  • 最后一次更改仍然是 404,如果我使用 RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*?)/?$ /$1.php [L] server.com/api/checkAvailability 被执行但是当我写 RewriteRule ^(.*?)/?$ api/$1.php [L] 并使用 server.com/checkAvailability 相同的 404 错误
  • @ryanramsumair,好的,请告诉我您的 htaccess 文件在哪里(示例/示例)以及您的文档路径在哪里?规则对我来说很好,只是我们需要在这里调整路径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
  • 2011-06-15
  • 1970-01-01
相关资源
最近更新 更多