mod_rewrite现有目录到index.php中添加了查询字符串,但对不存在的目录有效

格雷姆

所以我的目录结构是这样的:

vhostrootdir/
|- app/
|- public/
   |- css/
   |- img/
   |- js/

这是我的重写:

ServerName vhostname
<Directory  "vhost/root/dir">
    Options FollowSymLinks
    AllowOverride None
    Require local

    RewriteEngine On
    RewriteCond %{CONTEXT_DOCUMENT_ROOT}/public/$1 -f
    RewriteRule ^((?s).*)$ public/$1 [END]
    RewriteRule ^((?s).*)$ index.php?_url=$1 [END]
</Directory>

如果我转到,vhostname/whatever那么我的php$_GET["_url"]返回whatever,并且地址栏停留vhostname/whatever在所需的位置。

但是,如果我去vhostname/public,然后$_GET["_url"]public/注意多余的“ /”,尽管这并不打扰我。问题是浏览器地址栏也更改了 ,我绝对不希望更改为该地址栏vhostname/public/?_url=/public

vhostname/public/更令人困惑的是,如果我去(请注意附加的“ /”),则它可以正常工作。我得到的$_GET["_url"]public/,地址栏没有变化。

如果我去的话,情况也是一样的vhostname/app

编辑: 原来是浏览器历史记录问题。我清除了Chrome的历史记录,并对其进行了修复。 没关系,没有解决它。将DocumentRoot更改为公用文件夹后,它仍在公用和应用程序url上发生,但是清除历史记录后,它不再在公用和应用程序url上发生,并且现在在公用文件夹子文件夹上发生。

格雷姆

好吧,我相信我已经解决了这个问题。由于重写之前的URL已解析到目录,并且由于我省略了结尾/,所以apache会自动发送/添加了结尾的301 Moved Permanently重定向我猜由于命令apache的作用,重定向也进行了重写,而不是从301重定向到http://<vhostname>/img<vhostname>/img/而是301重定向到<vhostname>/img/?_url=img

我终于通过添加DirectorySlash off到我的虚拟主机中解决了这个问题(我认为)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

mod_rewrite现有目录到index.php中添加了查询字符串,但对不存在的目录有效

来自分类Dev

如何使mod_rewrite对于别名目录中的图像请求有效?

来自分类Dev

我的mod_rewrite不忽略现有文件

来自分类Dev

.htaccess mod_rewrite具有3个目录级别

来自分类Dev

mod_rewrite index.php 带有各种参数?

来自分类Dev

mod_rewrite添加完整目录

来自分类Dev

mod_rewrite重定向目录中除目录本身以外的所有内容

来自分类Dev

mod_rewrite没有传递查询字符串

来自分类Dev

Mod_Rewrite虚拟目录问题

来自分类Dev

mod_rewrite和子目录

来自分类Dev

未知目录数量的mod_rewrite

来自分类Dev

mod_rewrite子域到目录

来自分类Dev

将下划线重写为现有的mod_rewrite规则集中的连字符

来自分类Dev

如果regex与现有文件匹配,则mod_rewrite行为不当,但仅在.htaccess文件中

来自分类Dev

mod_rewrite:将现有文件重写为友好链接

来自分类Dev

mod_rewrite所有请求到一个文件(特定目录除外)

来自分类Dev

为什么.htaccess mod_rewrite没有显示真实目录

来自分类Dev

file_exists()对字符串有效,但对字符串变量无效

来自分类Dev

mod_rewrite目录,但排除子目录

来自分类Dev

mod_rewrite目录,但排除子目录

来自分类Dev

PHP中的有效字符串替换

来自分类Dev

带有mod_rewrite的HTaccess 404

来自分类Dev

(| /)$与mod_rewrite有什么关系?

来自分类Dev

带有mod_rewrite的HTaccess 404

来自分类Dev

使用mod_rewrite删除htaccess中的目录

来自分类Dev

使用mod_rewrite将子目录名称重定向到index.php以获得漂亮的URL

来自分类Dev

将所有匹配项重定向到不存在的目录到PHP页面

来自分类Dev

使用mod_rewrite从URL删除子目录

来自分类Dev

如何使用htacess文件(mod_rewrite)模拟目录?

Related 相关文章

  1. 1

    mod_rewrite现有目录到index.php中添加了查询字符串,但对不存在的目录有效

  2. 2

    如何使mod_rewrite对于别名目录中的图像请求有效?

  3. 3

    我的mod_rewrite不忽略现有文件

  4. 4

    .htaccess mod_rewrite具有3个目录级别

  5. 5

    mod_rewrite index.php 带有各种参数?

  6. 6

    mod_rewrite添加完整目录

  7. 7

    mod_rewrite重定向目录中除目录本身以外的所有内容

  8. 8

    mod_rewrite没有传递查询字符串

  9. 9

    Mod_Rewrite虚拟目录问题

  10. 10

    mod_rewrite和子目录

  11. 11

    未知目录数量的mod_rewrite

  12. 12

    mod_rewrite子域到目录

  13. 13

    将下划线重写为现有的mod_rewrite规则集中的连字符

  14. 14

    如果regex与现有文件匹配,则mod_rewrite行为不当,但仅在.htaccess文件中

  15. 15

    mod_rewrite:将现有文件重写为友好链接

  16. 16

    mod_rewrite所有请求到一个文件(特定目录除外)

  17. 17

    为什么.htaccess mod_rewrite没有显示真实目录

  18. 18

    file_exists()对字符串有效,但对字符串变量无效

  19. 19

    mod_rewrite目录,但排除子目录

  20. 20

    mod_rewrite目录,但排除子目录

  21. 21

    PHP中的有效字符串替换

  22. 22

    带有mod_rewrite的HTaccess 404

  23. 23

    (| /)$与mod_rewrite有什么关系?

  24. 24

    带有mod_rewrite的HTaccess 404

  25. 25

    使用mod_rewrite删除htaccess中的目录

  26. 26

    使用mod_rewrite将子目录名称重定向到index.php以获得漂亮的URL

  27. 27

    将所有匹配项重定向到不存在的目录到PHP页面

  28. 28

    使用mod_rewrite从URL删除子目录

  29. 29

    如何使用htacess文件(mod_rewrite)模拟目录?

热门标签

归档