我正在尝试使用 Apache 和 PHP 进行一些 URL 重写。这是出于 SEO 原因,因此 foo.com/product-category/product-title 变为 foo.com/product.php?id=999。我当然希望 URL 不改变并且是 SEO 友好的版本。
我有一个当前的站点,它有一个工作设置,但它非常是一个 hack,而不是一个可维护的解决方案,所以我正在努力做正确的事情!
目前我有: -
RewriteRule ^([a-zA-Z0-9_\ \-\%]+)/?($) /url_redirect.php?page=$1 [QSA,L]
完美的工作, http: //foo.com/random-url ?foo=1&bar=2 以 $_GET['page'] = 'random-url' 和 $_GET['foo'] 结束于 /url_redirect.php = 1 等等等等。
如果您更深一层,我希望发生完全相同的事情(例如http://foo.com/non-existing-directory/random-url?foo=1&bar=2)
我可以将不存在的目录设为真正的目录,然后从那里 .htaccess 但必须有一种更简单的方法。我希望我不必对任何目录名称进行硬编码(这就是我当前解决方案的工作方式)。
我认为问题可能是正则表达式不正确,他们总是打败我。