2

我被这个挑战困住了,我真的希望有人能帮助我。

我目前正在开发一个 API,并且需要一个友好的 URL 来调用该 API。

大众汽车制造商发布了一款名为 UP 的汽车!

如果您注意到品牌类型上有感叹号。这给 .htaccess 带来了问题,因为它会进入 404 页面。

示例网址: http: //mysite.com/cars/new/VOLKSWAGEN/UP

有没有人遇到过这个问题并解决了?

这是我的 .htaccess 文件

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]    
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]

RewriteBase /

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

非常感谢。

4

2 回答 2

1

将此规则插入以下RewriteEngine On行:

RewriteRule ^(.*?)!$ /$1 [R=301,L]

!这将从所有 URI中删除尾随。

于 2013-08-12T07:01:11.553 回答
0

您需要使用URL 编码。我不太清楚你所说的“友好”是什么意思,但你根本不能在 HTTP URL 中使用感叹号字符。不过,如今大多数浏览器都将编码字符转换为地址栏上的等价字符。

于 2013-08-12T05:44:36.730 回答