1

SEO の目的で、製品のクリーンな URL リンクを作成することにしました。これにより、顧客はリンクをよりよく覚えることができます。私は何時間も調査してきましたが、クリーン URL リダイレクトとダーティ URL リダイレクトの概念を完全には理解していません。この件に関しては、もっと単純なドキュメントが利用できると思うでしょう。

私は .htaccess ファイルを以下のように構成しており、ユーザーが入力したクリーンな URL または www.example.com\Category\Subcategory\ などのクリーンなリンクを取得し、それを .php ファイルにリダイレクトして MySQL テーブルにアクセスし、表示するために完全に機能しています。製品情報。

私が理解できないのは、ブラウザでユーザーに表示されるクリーンな URL を維持し、ダーティまたはリダイレクトされた URL を表示しない方法です。それは .htaccess ファイルで達成されますか?

明確にするために:

顧客が www.example.com\shoes\running と入力すると、.htaccess はクリーン URL を subcat_lookup_clean.php?c=$1&s=$2 にリダイレクトします。これは基本的にクリーン URL を処理し、適切な情報を検索して動的に表示します。

しかし、顧客のブラウザには www.example.com\subcat_lookup_clean.php?c=$1&s=$2 が表示されます。

代わりに、クリーンな URL www.example.com\shoes\running を見てもらいたいと思います。

.htaccess ファイルには以下が含まれます。

Options +FollowSymLinks
RewriteEngine On

# do not do anything for already existing file, symbolic link or directory
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]

# redirect category/subcategory to lookup page
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ ./subcat_lookup_clean.php?c=$1&s=$2
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ ./subcat_lookup_clean.php?c=$1&s=$2 [L]
4

1 に答える 1

1

完全に機能するソリューションを使用して、以下の .htaccess を修正しました。

ここでデモを行うことができます: http://www.tiedandtrue.com

Options +FollowSymLinks
RewriteEngine On

# if redirected to url cleaner, redirect to actual lookup file and
# these lines will keep the clean url visible in the browser
RewriteRule ^cat_url_cleaner.php ./cat_lookup.php [L]
RewriteRule ^subcat_url_cleaner.php ./subcat_lookup.php [L]
RewriteRule ^subsubcat_url_cleaner.php ./subsubcat_lookup.php [L]

# do not do anything if already existing file, symbolic link or directory
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]

# redirect clean url (/category) for processing
RewriteRule ^([a-zA-Z0-9_-]+)$ ./cat_url_cleaner.php?c=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ ./cat_url_cleaner.php?c=$1 [L]

# redirect clean url (/category/subcategory) for processing
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ ./subcat_url_cleaner.php?c=$1&s=$2
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ ./subcat_url_cleaner.php?c=$1&s=$2 [L]

# redirect clean url (/category/subcategory/subsubcategory) for processing
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ ./subsubcat_url_cleaner.php?c=$1&s=$2&ss=$3
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ ./subsubcat_url_cleaner.php?c=$1&s=$2&ss=$3 [L]
于 2013-03-13T01:13:41.497 に答える