【问题标题】:url redirection working incorrect using .htacess in php在 php 中使用 .htaccess 的 url 重定向工作不正确
【发布时间】:2017-10-12 12:33:58
【问题描述】:

我有一个子域 api.example.com。

我的代码在/var/www/html/ 文件夹中。

我的所有子域都重定向到/var/www/html 文件夹。

我正在使用 api.example.com 重定向 /var/www/html/api 文件夹。使用.htaccess

RewriteEngine On

RewriteCond %{HTTP_HOST} ^api\. [NC]
RewriteRule !^api/ api%{REQUEST_URI} [L,NC]

但问题是,它也改变了我的网址,api.example.com/api 我不想改变我的网址。

当我在浏览器选项卡中键入 api.example.com 并按 Enter 时,它会更改为 api.example.com/api 并打开 api folderindex 文件,但我不想更改我的 URL,它会打开api文件夹的index文件。

【问题讨论】:

  • 它将 URL 更改为什么?这是您的 htaccess 文件包含的所有内容,还是有其他重写?
  • @CBroe,当我在浏览器选项卡中输入api.example.com 并按回车键时,它会变成api.example.com/api
  • @anubhava,当我写api.example.com 然后它给我301 Moved Permanently (from disk cache) 然后打电话给api.example.com/api
  • 我得再问一次。在浏览器中输入api.example.com/foo1234会发生什么?
  • 404 页面未找到错误

标签: php apache .htaccess redirect mod-rewrite


【解决方案1】:

改成这个

RewriteEngine On

RewriteCond %{HTTP_HOST} ^api\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/?api(/.*)?$ [NC]
RewriteRule ^/?(.*)/?$ /api/$1 [L,NC]

通知

在测试之前删除您的浏览器缓存。如果这仍然不是您想要的,那么您已经制定了其他规则。

【讨论】:

    猜你喜欢
    • 2018-06-20
    • 1970-01-01
    • 2016-01-02
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多