Apache と PHP で URL の書き換えを試みています。これは SEO 上の理由によるもので、foo.com/product-category/product-title は foo.com/product.php?id=999 になります。もちろん、URL を変更せず、SEO に適したバージョンにしたいと考えています。
私は現在、セットアップが機能しているサイトを持っていますが、それは保守可能なソリューションではなくハックであるため、正しいことをしようとしています!
現時点で私は持っています: -
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 など
1 レベル深い場合 (例: http://foo.com/non-existing-directory/random-url?foo=1&bar=2 )でまったく同じことが起こることを望みます。
non-existing-directoy を実際のディレクトリにして、そこから .htaccess にすることもできますが、もっと簡単な方法が必要です。ディレクトリ名をハードコードする必要はありません (これは、私の現在のソリューションがどのように機能するかのようなものです) 。)。
問題はおそらく正規表現に問題があると思います。彼らはいつも私を打ち負かします。