【问题标题】:Removing Special Characters from URL - HTACCESS从 URL 中删除特殊字符 - HTACCESS
【发布时间】:2015-01-19 09:14:09
【问题描述】:

因此,出于某种原因,我一直致力于重新设计的网站是使用一些博客软件 (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

但由于“。”,我遇到了错误。在我的网址中。

我希望有某种方法可以去除这些特殊字符并仍然重定向到新结构。

【问题讨论】:

  • 什么样的错误?有错误信息吗?
  • 是的@MarioA - 当链接包含任何句点等时出现 404 错误
  • 我认为句点和 url 没有问题。重定向显然有效,但您的应用程序不提供 url,因此您得到 404
  • 您希望重定向的 url 看起来如何?破折号而不是句点?
  • 我相信实际上是框架在 URL 中的句点存在问题 - @MarioA 是的,破折号会是完美的

标签: .htaccess mod-rewrite redirect


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 2011-04-11
    • 2016-01-23
    相关资源
    最近更新 更多