【发布时间】:2012-11-24 11:27:39
【问题描述】:
我正在尝试使用 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'] = 1 等结束于 /url_redirect.php。
如果你更深一层,我希望同样的事情发生 (例如http://foo.com/non-existing-directory/random-url?foo=1&bar=2)
我可以使不存在的目录成为真正的目录,然后从那里 .htaccess 但必须有一种更简单的方法。我希望我不必对任何目录名称进行硬编码(这就是我目前的解决方案的工作原理)。
我认为问题可能是正则表达式不正确,他们总是打败我。
【问题讨论】:
标签: php apache .htaccess mod-rewrite