从URL中删除特殊字符 - HTACCESS

时间:2015-01-19 09:14:10

标签: .htaccess mod-rewrite redirect

因此,出于某种原因,我一直在进行重新设计的网站是使用一些博客软件(Serendipity)构建的,并且出于进一步未知的原因,对博客的入站链接就像这样 -

http://site_name.co.uk/blog/index.php?/archives/this-is-a-blog-title.html

在我的HTACCESS中使用以下重定向我设法重新链接新的URL结构

http://site_name.co.uk/blog/this-is-a-blog-title

RewriteRule ^blog(/?)$                              /news [R=301,L]
RewriteCond %{QUERY_STRING} ^/archives/(.+?)\.html$ [NC]
RewriteRule ^blog/index\.php$                       /news/%1? [R=301,L]
RewriteRule ^blog/index.php(.*)$                    /news/$1 [R=301,L]

但是出现问题。由于旧链接将博客标题作为查询字符串的一部分,因此URL中允许使用特殊字符,例如

http://site_name.co.uk/blog/index.php?/archives/this-is-a-blog-title-google.co.uk.html

现在重定向到

http://site_name.co.uk/news/this-is-a-blog-title-google.co.uk.html

但我因为''而得到错误。在我的网址中。

我希望有一种方法可以剥离这些特殊字符,并且仍然可以重定向到新结构。

1 个答案:

答案 0 :(得分:0)

问题出在正在使用的框架内。通过在框架URL结构中允许句点来解决问题。