我遇到了这个挑战,我真的希望有人可以帮助我。
我目前正在开发一个API,并且需要一个友好的URL来调用API。
VOLKSWAGEN制造公司发布了一款名为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]
非常感谢。
答案 0 :(得分:1)
在RewriteEngine On
行:
RewriteRule ^(.*?)!$ /$1 [R=301,L]
这将删除所有URI中的尾随!
。
答案 1 :(得分:0)
您需要使用URL encoding。我不太确定你的意思是什么&#34;友好&#34;,但你不能在HTTP网址中有一个感叹号字符。如今,大多数浏览器都会将编码字符转换为地址栏上的等效字符。