gpt4 book ai didi

php - mod_rewrite 对没有正斜杠的链接的影响?

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:08:00 26 4
gpt4 key购买 nike

我有以下 VirtualHost 和 HTML。 VirtualHost 的目的是获取 http://example.com/bla/index.php?id=3并将其重写为 http://example.com/index.php?admin=bla&id=3 .如果浏览器中的 URL 是 http://example.com/bla/ , 表格和链接都转到 http://example.com/bla/index.php .但是如果我把 http://example.com/bla (没有尾部正斜杠)在浏览器中,帖子转到 http://example.com/bla/index.php , 但链接转到 http://example.com/index.php (没有“bla”)。这是为什么,我该怎么做才能将链接定向到 http://example.com/bla/index.php

<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory "/var/www/html">
allow from all
Options +Indexes
RewriteEngine On
RewriteBase /

# If the request is for a valid directory, file, or link, don't do anything
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]

RewriteRule ^([^/]*|[^/]+/(index.php)?)$ /index.php?admin=$1 [L,QSA]
</Directory>
</VirtualHost>

索引.php

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Links</title>
</head>
<body>
<a href="index.php?id=1">link 1</a>
<a href="index.php?id=2">link 2</a>
<a href="index.php?id=3">link 3</a>
<form method="post">
<input type="text" name="post_text">
<input type="submit" value="submit">
</form>
</body>
</html>

最佳答案

这不是问题或错误。

浏览器通过链接完成工作

使用 http://example.com/bla :链接 index.php
在根文件夹中 -> http://example.com/index.php

使用 http://example.com/bla/ :链接 index.php
bla 文件夹中 -> http://example.com/bla/index.php

服务器使用表单完成工作

浏览器将表单发送到 http://example.com/blahttp://example.com/bla/ 并且服务器重写。

您可以在您的 html 中使用它:

    <a href="/bla/index.php?id=3">link 3</a>
<form method="post" action="/bla/index.php">

或在头部:

  <base href="/bla/">

避免问题

关于php - mod_rewrite 对没有正斜杠的链接的影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28182511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com