【问题标题】:Creating SEO Friendly URLs with .htaccess and php使用 .htaccess 和 php 创建 SEO 友好的 URL
【发布时间】:2015-07-07 20:27:09
【问题描述】:

我正在尝试通过在我们的 .htaccess 文件中使用重写来使用 PHP 生成对 SEO 友好的 URL,但我无法让它工作(我已经研究了 StackExhange 和其他地方的许多相关主题,但是为了徒劳无功)。

我正在尝试制作此 URL 的内容:http://199.119.123.135/surety-bonds/city.php?state=california&city=sacramento

...这里也显示在更简洁的 URL 版本上:http://199.119.123.135/surety-bonds/california/sacramento/

我在我的 .htaccess 文件中使用以下代码:

RewriteEngine on
RewriteRule ^surety-bonds/([a-zA-Z]+)$ city.php?state=$1&city=$2 [L,NC]

知道为什么更干净的 URL 会显示 404 错误吗?

谢谢!

【问题讨论】:

  • 您的模式正在寻找州,但没有城市。提示 $1 指的是模式中的第一对括号,$2 指的是什么?
  • 加上surety-bonds/ 前面缺少city.php

标签: apache .htaccess mod-rewrite


【解决方案1】:

试试:

RewriteEngine On

RewriteCond %{THE_REQUEST} \ /+surety-bonds/city\.php\?state=([^&]+)&city=([^&\ ]+)
RewriteRule ^ /surety-bonds/%1/%2/? [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^^surety-bonds/([^/]+)/([^/]+)/?$ /surety-bonds/city.php?state=$1&city=$2 [L,QSA]

在文档根目录的 htaccess 文件中。

【讨论】:

  • 成功了!我正在尝试进行非常相似的 URL 重写,但遇到了错误。我在这里创建了一个单独的线程link,但到目前为止还没有解决这个问题。你能看一下,因为你似乎很熟悉我要做什么?
猜你喜欢
  • 2015-11-03
  • 2014-12-04
  • 2011-05-09
  • 2017-11-08
  • 2012-08-21
  • 2013-02-03
  • 2015-04-08
  • 2021-07-23
  • 1970-01-01
相关资源
最近更新 更多