从URL中删除任何尾随的字母数字字符

时间:2014-02-19 12:28:32

标签: php .htaccess codeigniter

我在codeigniter中有网站。我是新手来定义.htaccess中的规则我希望如果客户端在URL末尾键入任何字母数字字符,那么这些字符应该被删除。

例如:在http://studio.com/gallery/babies/12abc

应删除12abc。

有没有办法在.htaccess中设置规则来删除任何尾随的字母数字字符?

我正在搜索相同的重写规则,但没有找到任何。请建议。

1 个答案:

答案 0 :(得分:1)

如果只是字母数字,你想删除......

RewriteEngine On
RewriteCond   %{REQUEST_FILENAME} !-f
RewriteCond   %{REQUEST_FILENAME} !-d
RewriteRule   ^(([^/]+/)*)([a-z0-9]+)$    $1 [NC,R=301,L]

如果URL未指向实际存在的文件(或目录),则! -f! -d这两个条件可确保重写 - 这会阻止您实际上希望从特定的,现有的文件/目录中重写的URL,或者您陷入可怕的递归循环,导致Apache抛出服务器错误。

此.htaccess文件需要位于您的网络服务器的根目录下,如果它位于子目录中,您需要添加相关的RewriteBase

旗帜:

NC =无大小写(使匹配大小写不敏感)

R = 301 =使此重定向成为实际的HTTP 301重定向,以便您更改URI(从而删除不需要的跟踪字母数字)

L =最后,我们完成了重定向处理而没有检查其余的RewriteRules