- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这两天我一直在为这个问题苦苦挣扎。
目前我有以下重写规则:
RewriteRule ^(.*)$ index.php?u=$1 [NC,L]
它将 example.com/后面的所有内容作为 GET 变量 u 移植到 index.php。这是在 index.php 中处理的,用爆炸来定义不同的参数是:城市(在第一个斜线之间)和位置(第二个参数)
这非常适用于以下网址:
example.com/City/location/或 example.com/City/location
example.com/City/或 example.com/City
产生:
$arg[0] = city
$arg[1] = location
当位置名称中包含“&”符号时会出现问题:
example.com/city/location&more
转换为:
index.php?u=city/location&more
问题很明显;我不能再在 index.php 中使用 explode 参数,因为位置名称的第二部分未存储在 $_GET['u'] 中。
我该如何解决这个问题?
我想到了三个我不知道如何实现的解决方案:
1) 重写重写规则以拆分.htaccess 中的城市和位置
2) 使用 .htaccess 等效的 urlencode 将 &-sign 转换为 %26
3) 一个完整的其他解决方案:)
提前致谢!
编辑首先:当我的网站生成链接时,它会使用 urlencode 进行翻译。所以不应该有 & 的地方没有。& 是商业名称的一部分,例如:“Bagels&Beans”当人们想要搜索该公司时,他们会在 url 字段中键入:www.example.com/city/bagels&beans。这就是问题开始的地方。
编辑2当我去:example.com/city/bagels%26Beans它转换为以下内容:$_GET:
Array
(
[u] => city/Bagels
[Beans] =>
)
编辑 3我分解 $_GET['u'] 以形成参数的方式。
$arg = explode('/',$_GET['u']);
最佳答案
您不需要将 URL 路径放在参数中。您可以像这样简单地解析原始请求的路径:
$_SERVER['REQUEST_URI_PATH'] = strtok($_SERVER['REQUEST_URI'], '?');
$segments = explode('/', trim($_SERVER['REQUEST_URI_PATH'], '/'));
现在您只需要这条规则来将请求重写到您的index.php:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php$ index.php [L]
附加条件是只重写不能映射到现有文件的请求。
关于php - .htaccess mod 重写规则和符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2027367/
如何在 Mod Security 中获取响应/请求正文的大小? 我不断收到此错误,例如: [Mon Sep 17 23:34:38 2012] [error] [client 192.168.1.1]
我要计算的值 对于给定的 N 值,F(N) = (F(N-1) * [((N-R+1)^(N-R+1))/(R^R)]) mod M, R 和 M. 这里 A^B 显示 A 的幂 B 而不是任何位操作
这个程序中的ans = (ans + mod) % mod语句需要什么? 假设 mod = 10^9+7。此函数在 O(log(n)) 复杂度的模运算下计算 a 的 b 次方: long long p
我正在尝试做简单的思考。在循环中使用 ng-include 将多个 html 页面包含到渲染页面。 $scope.modules = ["mod_nav","mod_feature"
我有一个使用moodle库的项目。由于客户端请求,我不得不将 URL 从moodle.example.com 更改为learn.example.com。 我认为这将是一个简单的更改,但唉,moodle
我正在尝试制作一个 Taskfile.yml 文件来构建 go 应用程序,但我不太明白在 go build main.go 之前需要“GOFLAGS=-mod=mod”命令。 引用:https://d
我正在尝试制作一个 Taskfile.yml 文件来构建 go 应用程序,但我不太明白在 go build main.go 之前需要“GOFLAGS=-mod=mod”命令。 引用:https://d
首先,我想说,我从谷歌尝试了很多方法,但 mod_rewrite 不起作用! 我从 httpd.conf 尝试了我在谷歌上找到的 1000000 种方式,但仍然无法正常工作。 我想从 example.
你好我试图安装 libapache2-mod-fcgid mod 但总是出错。 root@mail:~# sudo apt-get install libapache2-mod-fcgid Readi
我需要在 URL 中使用 + 字符。我将 Apache 与 PHP 结合使用。 ([A-Za-z0-9/_%-@\+]*) 不起作用。 我需要的是www.domain.com/c++/ => inde
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 2年前关闭。 Improve this questi
我正在尝试在新的 Ubuntu 14.04 上设置一个 apache2 Web 服务器。我一直按照找到的说明进行操作 here一切都很顺利,直到我到达被告知编辑 mod-security.conf 的
当我运行“go mod tidy”时它会中断,因为我的项目导入的包使用路径“github.com/coreos/bbolt”导入了另一个包,但是当它从该路径获取包时,它的 go.mod 说它的路径是“
这种脚本语言没有 % 或 Mod()。我确实有一个 Fix() 可以去掉数字的小数部分。我只需要积极的结果,所以不要太健壮。 最佳答案 威尔 // mod = a % b c = Fix(a / b)
在我的小项目中,我有一个脚本通过运行静态代码检查来确保正确的代码质量,例如,我使用 errcheck验证我是否处理了代码中的每个错误。 在 dep ,对于这种依赖有一个特殊的部分,称为 require
我使用 sudo apt install golang-go 在我的 ubuntu 中安装了 go 语言. 它已成功安装。当我运行 go version我收到 go version go1.10.4
谁能帮我解决这个问题: RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://www.$1 [R=301,L] 我想
BigIntegerValue.pow(IntegerValue) Java 上的指数是整数,但我有 Biginteger 值。 我曾尝试验证签名 GOST 3410,我得到了这个代码 pow,但它太
所以我才开始使用 Forge。我只是有一个非常简单的示例 mod 用于学习目的。当我使用 gradlew build 导出 mod 时,一切正常,它将 mod 放入 forge 的 build\lib
在玩 jmh 时,我遇到了一件我无法解释的奇怪事情。 @BenchmarkMode(Mode.SingleShotTime) @Measurement(iterations = 10, batchSi
我是一名优秀的程序员,十分优秀!