CMS で作成された SEO フレンドリーな URL を処理する CMS があります。index.php
したがって、 likeの拡張であるすべてのものは、www.url.com/index.php?id=slug
適切に に変更されwww.url.com/slug
ます。
ただし、CMS に接続されていない MYSQL クエリ文字列を使用して作成された 1,000 を超えるページもあります。ので、私は持っています:
www.url.com/item.php?id=001234&pg=author-title
ページを生成するには、id と pg の情報が必要です。私が望むのは、これらのページの URL が次のようになることです。
www.url.com/item/001234/author-title.html
これを行うためのすべての方法を探して、多くの mod_rewrite チュートリアルを見てきましたが、機能させることができないようです。
これが私の .htaccess です (ここにあるもののいくつかは、私の CMS によって使用および生成されていることに注意してください。
編集:さて、これまでの回答に基づいて、.htaccessを次のように変更しました:
# Use PHP5 as default
AddHandler application/x-httpd-php5 .php
AddDefaultCharset UTF-8
# File modified on Dec 5 11:28:31 2011 by server
# For security reasons, mod_php is not used on this server. Use a php.ini file for php directives
# php_value default_charset "UTF-8"
Options -Indexes
Options +FollowSymLinks
# blocks direct access to the XML files - they hold all the data!
<Files ~ "\.xml$">
Order allow,deny
Deny from all
Satisfy All
</Files>
<Files sitemap.xml>
Order allow,deny
Allow from all
Satisfy All
</Files>
RewriteEngine on
# Usually it RewriteBase is just '/', but
# replace it with your subdirectory path
RewriteBase /
# Usually it RewriteBase is just '/', but
# replace it with your subdirectory path
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?([A-Za-z0-9_-]+)/?$ index.php?id=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?item/([0-9]+)/([a-zA-Z0-9_]+).html$ item.php?id=$1&pg=$2 [QSA,L]
編集:これまでのフィードバックで .htaccess を変更した後、書き換えられた URL はまだ望ましい結果を生成していません。私はまだ404を取得しています。